Вполне допускаю, что понял неверно
Если так, то логичнее реализовать в скрипте, вместо автозавершения скрипта в AutorunFinalizeSection.
P.S. Интересно звучит задачка.
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Т.е. "мой" лежит в конкретной папке, любой не-"мой" - в любом другом каталоге?LonerD писал(а):... мой Тотал ... несколько копий моего Тотала ...
Как-то всё вместе не очень понятно звучитLonerD писал(а):запоминать или записывать в отдельный файл все PID запускаемого процесса ТС и время от времени опрашивать их. Если все PID выгружены - то выгружается и программа-скрипт.
Код: Выделить всё
#NoTrayIcon
#include "WinAPIEx.au3"
; Регистрируем функцию проверки процессов
AdlibRegister("CheckProc", 3000)
Local $sTCExe = _WinAPI_GetProcessFileName($CmdLine[1])
Local $sTCPath = StringRegExpReplace($sTCExe, "\\[^\\]+$", "\")
Local $iTCNameLen = StringLen($sTCPath)
; Тут собственно скрипт
Func CheckProc()
AdlibUnRegister("CheckProc")
Local $sTmp
Local $iCount = 0
Local $aProcList = ProcessList()
For $i = 1 To $aProcList[0][0]
If StringMid($aProcList[$i][1], 1, 8) = "TOTALCMD" Then
$sTmp = _WinAPI_GetProcessFileName($aProcList[$i][0])
If StringMid($sTmp, 1, $iTCNameLen) = $sTCPath Then
$iCount += 1
ExitLoop
EndIf
EndIf
Next
If $iCount = 0 Then Exit
EndFuncДа, переменные окружения после создания не зависят от состояния запуска Autorun.LonerD писал(а):Или плагин Autorun выгружается? (по какой причине это может происходить? командой выгрузки плагинов не пользуюсь). Или работа назначенных при запуске переменных не зависит от него?
Код: Выделить всё
SetEnv /A /EV PATH ;%commander_path%
SetEnv /A /EV PATH ;%commander_path%\SystemКод: Выделить всё
SetEnv /A PATH %commander_path%;
SetEnv /A PATH %commander_path%\System;Код: Выделить всё
;D:\TCDL;D:\TCDL\System;D:\TCDL;D:\TCDL\System;D:\TCDL;D:\TCDL\System;D:\TCDL;D:\TCDL\System;Интересно, получается, что пропадают добавленные записи в PATH. В принципе, PATH достаточно критичная переменная, может это работа антивируса какого?LonerD писал(а):Запускаю последовательно несколько команд, потом оп - через пару секунд следующая уже не запускается. Посмотрел плагином EnvVariables - добавленные значения в переменной PATH пропали. Перезапустил Тотал, попробовал снова, воспроизвести пропадание не удалось.
Переключатель /EV остался от совсем ранних времён, когда он включал разворачивание переменных. Сейчас он ничего не делает, т.к. разворачивание включено по умолчанию, а отключается с помощью /EV-.LonerD писал(а):1. Для чего у меня было /EV - не знаю.
А это зависит от конкретной системы, что туда записано. У меня в конце PATH нет точки с запятой. В принципе, в случае сомнений правильнее проверять наличие ; в конце исходной переменной перед дозаписью.LonerD писал(а):2. Точку с запятой правильнее ставить в конце пути, иначе в тексте переменной получится ;;
В принципе, тут всё согласно документации - проверяется текст в конце, а тут для каждой команды предыдущий текст будет другой. Т.е. чтобы всё сработало, надо устанавливать весь текст одной командой:LonerD писал(а): Оказывается, в конце переменной PATH накапливаются записи вида
Код: Выделить всё
SetEnv /A PATH %commander_path%;%commander_path%\System;Содержимое переменной PATH, с которой оперирует процесс тотала - унаследованное, т.е. изменение системного PATH после запуска TC уже не повлияет на PATH процесса тотала. Ну вроде так всегда раньше было, может что-то в 11 поменялось...LonerD писал(а):Может, Windows время от времени запускает внутреннюю проверку состояния системы, обнаруживает это непотребство и удаляет подозрительные записи.
Теперь всё отлично, лишние записи не появляются.Loopback писал(а):Т.е. чтобы всё сработало, надо устанавливать весь текст одной командой:
Код: Выделить всё
SetEnv /A PATH %commander_path%;%commander_path%\System;
Код: Выделить всё
LoadLibrary 'Plugins\Autorun_ModifyDialogs.dll'
IniRead CRNTLNG %COMMANDER_INI% "Configuration" "LanguageIni"
IniRead AUTOSIZE %COMMANDER_INI% "Configuration" "AutoSizeDialogs" 1
# cm_Copy, cm_RenMove F5/F6
If %AUTORUN_TCARCH% = 32 Then
If %AUTOSIZE% = 1 Then
AddDialog DIALOG_COPYMOVE
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:8 /W:-7 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:67 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-223 "TButton" 4 "" #Tree
AddControl /X:-20 /W:-18 "TButton" 1 "" #F2
AddControl /X:-167 /W:-78 "TButton" 2 "⌵" #Options
AddControl /X:329 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:8 /W:-7 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:67 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-223 "TButton" 4 "" #Tree
AddControl /X:-20 /W:-18 "TButton" 1 "" #F2
AddControl /X:329 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
Else # %AUTOSIZE% = 0
AddDialog DIALOG_COPYMOVE
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-4 /W:5 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:64 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-225 "TButton" 4 "" #Tree
AddControl /X:-19 /W:-18 "TButton" 1 "" #F2
AddControl /X:-169 /W:-78 "TButton" 2 "⌵" #Options
AddControl /X:330 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-4 /W:5 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:64 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-225 "TButton" 4 "" #Tree
AddControl /X:-19 /W:-18 "TButton" 1 "" #F2
AddControl /X:330 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
EndIf
Else # %AUTORUN_TCARCH% = 64
If %AUTOSIZE% = 1 Then
AddDialog DIALOG_COPYMOVE
AddControl /W:-20 "Button" 5 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:10 /W:-10 "Button" 3 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:68 /W:-65 "Button" 3 "" #MD5
EndIf
AddControl /X:-223 "Button" 7 "" #Tree
AddControl /X:-20 /W:-18 "Button" 1 "" #F2
AddControl /X:-167 /W:-78 "Button" 2 "⌵" #Options
AddControl /X:329 /W:-18 "Button" 8 "" #OK
AddControl /X:106 /W:2 "Button" 6 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl /W:-20 "Button" 10 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:10 /W:-10 "Button" 8 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:68 /W:-65 "Button" 8 "" #MD5
EndIf
AddControl /X:-223 "Button" 12 "" #Tree
AddControl /X:-20 /W:-18 "Button" 6 "" #F2
AddControl /X:329 /W:-18 "Button" 13 "" #OK
AddControl /X:106 /W:2 "Button" 11 "" #Cancel
Else # %AUTOSIZE% = 0
AddDialog DIALOG_COPYMOVE
AddControl "Button" 0 ""
AddControl /W:-20 "Button" 4 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-5 /W:5 "Button" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:65 /W:-65 "Button" 1 "" #MD5
EndIf
AddControl /X:-225 "Button" 6 "" #Tree
AddControl /X:-20 /W:-18 "Button" 2 "" #F2
AddControl /X:-167 /W:-78 "Button" 3 "⌵" #Options
AddControl /X:331 /W:-18 "Button" 7 "" #OK
AddControl /X:107 /W:2 "Button" 5 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl "Button" 0 ""
AddControl /W:-20 "Button" 9 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-5 /W:5 "Button" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:65 /W:-65 "Button" 1 "" #MD5
EndIf
AddControl /X:-225 "Button" 11 "" #Tree
AddControl /X:-20 /W:-18 "Button" 7 "" #F2
AddControl /X:331 /W:-18 "Button" 12 "" #OK
AddControl /X:107 /W:2 "Button" 10 "" #Cancel
EndIf
EndIf
ModifyDialogsКод: Выделить всё
AddControl "Button" 0 ""Код: Выделить всё
AddControl /X:-5 /W:5 "Button" 1 "" #MD5Код: Выделить всё
AddControl /W:-40 "TButton" 3 %ICON%,8
, очень было бы удобно.Я так понимаю, это только в x64? Такое впечатление, что что-то не инициализируется без предварительного холостого прогона, но что именно, неясно. Посмотрел наиболее очевидные места, проблем не увидел. Хорошо бы, конечно, выделить минимальный код, при котором проблема повторяется...yozhik писал(а):Вписал в код вызов нулевого — всё встало на места.
Без сложностей иконку можно поставить только на стандартные кнопки и static-контролы. Наследники static в формах TC не используются, остаются только кнопки. В их основе стандартный button, но это же delphi/lazarus, как они себя поведут, без тестов непонятно. Если нормально, то должно быть не слишком сложно.yozhik писал(а):а не трудоёмко ли будет добавить в AddControl возможность вместо текста назначать иконку?
Нет-с. И в 32-битном тоже.Loopback писал(а):Я так понимаю, это только в x64?
Вот к счастью у меня сразу воспроизвелось. Уточним: Тотал 11.00 32/64, Windows 10 21H2 64bit. Запускаю 32-битный TC:Loopback писал(а):выделить минимальный код, при котором проблема повторяется...

Код: Выделить всё
# ПЛАГИНЫ: ЗАГРУЗКА ......................................................... #
LoadLibrary 'Plugins\Autorun_ModifyDialogs.dll'
# ПЛАГИНЫ: переменные для имён элементов .................................... #
IniRead CRNTLNG %COMMANDER_INI% "Configuration" "LanguageIni"
If %CRNTLNG% = '' Then
Set TREEBTN "&Tree"
Else
LngRead TREEBTN 5002 "%COMMANDER_PATH%\LANGUAGE\%CRNTLNG%"
EndIf
IniRead AUTOSIZE %COMMANDER_INI% "Configuration" "AutoSizeDialogs" 1
IniRead FONTNAME %COMMANDER_INI% "AllResolutions" "FontNameDialog"
IniRead FONTSIZE %COMMANDER_INI% "AllResolutions" "FontSizeDialog"
# ПЛАГИНЫ: MODIFY_DIALOGS ................................................... #
# Диалог cm_CopySamePanel Shift+F5/F6
# AUTOSIZE, FONTNAME, FONTSIZE здесь не влияют
If %AUTORUN_TCARCH% = 32 Then
AddDialog /W:105 /CENTER:1 "TCheckComboBox"
AddControl /W:109 "TMyComboBox" 1
AddControl /Y:4 "TMyCheckBox" 2 "" #NTFS
AddControl /Y:2 "TMyCheckBox" 1 "" #MD5
AddCondition /TEXT "TButton" 1 %TREEBTN%
AddControl /X:-222 "TButton" 1 "" #Tree
AddControl /X:257 "TButton" 3 "" #OK
AddControl /X:106 "TButton" 2 "" #Cancel
Else
AddDialog /W:105 /CENTER:1 "TCheckComboBox"
AddControl /W:109 "LCLComboBox" 1 "" # м.б. когда-то заработает :(
AddCondition /TEXT "Button" 3 %TREEBTN%
AddControl /Y:6 "Button" 6 "" #NTFS
AddControl /Y:4 "Button" 2 "" #MD5
AddControl /X:-224 /Y:-8 "Button" 3 "" #Tree
AddControl /X:253 /Y:-8 "Button" 5 "" #OK
AddControl /X:102 /Y:-8 "Button" 4 "" #Cancel
EndIf
# Диалог создания файла cm_EditNewFile Shift+F4
# кнопку Дерево переносим на левый край, кнопки OK и Cancel справа вместе
# AUTOSIZE, FONTNAME, FONTSIZE здесь не влияют
If %AUTORUN_TCARCH% = 32 Then
AddDialog "TCOMBOINPUT"
AddCondition /TEXT "TButton" 1 %TREEBTN%
AddControl /X:-149 /W:-28 "TButton" 1 "" #Tree
AddControl /X:-2 "TButton" 2 "" #Cancel
AddControl /X:2 "TButton" 3 "" #OK
Else
AddDialog "TCOMBOINPUT"
AddCondition /TEXT "Button" 1 %TREEBTN%
AddControl /X:-149 /W:-28 "Button" 1 "" #Tree
AddControl /X:-2 "Button" 2 "" #Cancel
AddControl /X:2 "Button" 3 "" #OK
Endif
# Диалог атрибутов cm_SetAttrib
If %AUTORUN_TCARCH% = 32 Then
If %AUTOSIZE% = 1 Then
AddDialog "TATTRIBDLG"
# AddControl "TButton" 0
AddControl /X:-330 /W:-80 "TButton" 7 "?" #Help
AddControl /X:208 "TButton" 9 "" #OK
AddControl /X:204 "TButton" 8 "" #Cancel
Else
AddDialog "TATTRIBDLG"
# AddControl "TButton" 0
AddControl /X:-331 /W:-80 "TButton" 7 "?" #Help
AddControl /X:207 "TButton" 9 "" #OK
AddControl /X:203 "TButton" 8 "" #Cancel
Endif
Else
If %AUTOSIZE% = 1 Then
AddDialog "TATTRIBDLG"
# AddControl "Button" 0
AddControl /X:-329 /W:-80 "Button" 11 "?" #Help
AddControl /X:207 "Button" 13 "" #OK
AddControl /X:203 "Button" 12 "" #Cancel
Else
AddDialog "TATTRIBDLG"
# AddControl "Button" 0
AddControl /X:-330 /W:-80 "Button" 11 "?" #Help
AddControl /X:206 "Button" 13 "" #OK
AddControl /X:202 "Button" 12 "" #Cancel
Endif
Endif
# Диалог упаковки cm_PackFiles Alt+F5
If %AUTORUN_TCARCH% = 32 Then
If %AUTOSIZE% = 1 Then
AddDialog /H:13 "TDLGZIP"
# AddControl "TButton" 0
AddControl /X:-236 /Y:12 "TButton" 4 "" #Tree
AddControl /X:167 /Y:12 "TButton" 5 "" #OK
AddControl /X:70 /Y:12 "TButton" 3 "" #Cancel
AddControl /X:70 /Y:12 /W:-70 "TButton" 1 "?" #Help
Else
AddDialog /H:14 "TDLGZIP"
# AddControl "TButton" 0
AddControl /X:-236 /Y:14 "TButton" 4 "" #Tree
AddControl /X:167 /Y:14 "TButton" 5 "" #OK
AddControl /X:70 /Y:14 "TButton" 3 "" #Cancel
AddControl /X:70 /Y:14 /W:-70 "TButton" 1 "?" #Help
EndIf
Else
If %AUTOSIZE% = 1 Then
AddDialog /H:13 "TDLGZIP"
# AddControl "Button" 0
AddControl /X:-230 /Y:12 "Button" 21 "" #Tree
AddControl /X:170 /Y:12 "Button" 22 "" #OK
AddControl /X:75 /Y:12 "Button" 20 "" #Cancel
AddControl /X:75 /Y:12 /W:-69 "Button" 5 "?" #Help
Else
AddDialog /H:14 "TDLGZIP"
# AddControl "Button" 0
AddControl /X:-232 /Y:14 "Button" 21 "" #Tree
AddControl /X:170 /Y:14 "Button" 22 "" #OK
AddControl /X:75 /Y:14 "Button" 20 "" #Cancel
AddControl /X:75 /Y:14 /W:-68 "Button" 5 "?" #Help
Endif
Endif
# Диалог распаковки cm_UnpackFiles Alt+F9/Alt+F6
If %AUTORUN_TCARCH% = 32 Then
AddDialog "TDLGUNZIPALL"
# AddControl "TButton" 0
AddControl /W:2 "TMyComboBox" 1 "" #Auto-detect
AddControl /X:80 /W:-80 "TButton" 1 "?" #Help
If %AUTOSIZE% = 1 Then
AddControl /X:-166 "TButton" 3 "" #Tree
AddControl /X:202 "TButton" 4 "" #OK
AddControl /X:82 "TButton" 2 "" #Cancel
Else
AddControl /X:-167 "TButton" 3 "" #Tree
AddControl /X:205 "TButton" 4 "" #OK
AddControl /X:84 "TButton" 2 "" #Cancel
Endif
Else # %AUTORUN_TCARCH% = 64
AddDialog "TDLGUNZIPALL"
# AddControl "Button" 0
AddControl /X:-165 "Button" 4 "" #Tree
AddControl /X:201 "Button" 5 "" #OK
AddControl /X:82 "Button" 3 "" #Cancel
AddControl /X:80 /W:-80 "Button" 2 "?" #Help
Endif
# Диалог копирования/перемещения cm_Copy/cm_RenMove F5/F6
# кнопки слева-направо: Дерево, В очередь, Доп. (со стрелочкой), OK, Отмена
# FONTNAME, FONTSIZE не стал пока указывать
If %AUTORUN_TCARCH% = 32 Then
If %AUTOSIZE% = 1 Then
AddDialog DIALOG_COPYMOVE
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:8 /W:-7 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:67 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-223 "TButton" 4 "" #Tree
AddControl /X:-20 /W:-18 "TButton" 1 "" #F2
AddControl /X:-164 /W:-86 "TButton" 2 "⌵" #Options
AddControl /X:329 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:8 /W:-7 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:67 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-223 "TButton" 4 "" #Tree
AddControl /X:-20 /W:-18 "TButton" 1 "" #F2
AddControl /X:329 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
Else # %AUTOSIZE% = 0
AddDialog DIALOG_COPYMOVE
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-4 /W:5 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:64 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-225 "TButton" 4 "" #Tree
AddControl /X:-19 /W:-18 "TButton" 1 "" #F2
AddControl /X:-165 /W:-86 "TButton" 2 "⌵" #Options
AddControl /X:330 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl /W:-20 "TMyCheckBox" 3 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-4 /W:5 "TMyCheckBox" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:64 /W:-68 "TMyCheckBox" 1 "" #MD5
EndIf
AddControl /X:-225 "TButton" 4 "" #Tree
AddControl /X:-19 /W:-18 "TButton" 1 "" #F2
AddControl /X:330 /W:-18 "TButton" 5 "" #OK
AddControl /X:106 /W:2 "TButton" 3 "" #Cancel
EndIf
Else # %AUTORUN_TCARCH% = 64
If %AUTOSIZE% = 1 Then
AddDialog DIALOG_COPYMOVE
AddControl /W:-20 "Button" 5 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:10 /W:-10 "Button" 3 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:68 /W:-65 "Button" 3 "" #MD5
EndIf
AddControl /X:-223 "Button" 7 "" #Tree
AddControl /X:-20 /W:-18 "Button" 1 "" #F2
AddControl /X:-163 /W:-85 "Button" 2 "⌵" #Options
AddControl /X:329 /W:-18 "Button" 8 "" #OK
AddControl /X:106 /W:2 "Button" 6 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl /W:-20 "Button" 10 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:10 /W:-10 "Button" 8 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:68 /W:-65 "Button" 8 "" #MD5
EndIf
AddControl /X:-223 "Button" 12 "" #Tree
AddControl /X:-20 /W:-18 "Button" 6 "" #F2
AddControl /X:329 /W:-18 "Button" 13 "" #OK
AddControl /X:106 /W:2 "Button" 11 "" #Cancel
Else # %AUTOSIZE% = 0
AddDialog DIALOG_COPYMOVE
AddControl "Button" 0 ""
AddControl /W:-20 "Button" 4 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-5 /W:5 "Button" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:65 /W:-65 "Button" 1 "" #MD5
EndIf
AddControl /X:-225 "Button" 6 "" #Tree
AddControl /X:-20 /W:-18 "Button" 2 "" #F2
AddControl /X:-164 /W:-85 "Button" 3 "⌵" #Options
AddControl /X:331 /W:-18 "Button" 7 "" #OK
AddControl /X:107 /W:2 "Button" 5 "" #Cancel
AddDialog DIALOG_COPYMOVE_PINNED
AddControl "Button" 0 ""
AddControl /W:-20 "Button" 9 "" #NTFS
If StrPos(%CRNTLNG%, "RUS") > 0 Then
AddControl /X:-5 /W:5 "Button" 1 "" #MD5
ElseIf StrPos(%CRNTLNG%, "ENG") > 0 Then
AddControl /X:65 /W:-65 "Button" 1 "" #MD5
EndIf
AddControl /X:-225 "Button" 11 "" #Tree
AddControl /X:-20 /W:-18 "Button" 7 "" #F2
AddControl /X:331 /W:-18 "Button" 12 "" #OK
AddControl /X:107 /W:2 "Button" 10 "" #Cancel
EndIf
EndIf
ModifyDialogs
Ну, и прекрасно, хватит за глаза. Давайте, пожалуйста, попробуем. Если получится, то я бы все «Справки» и «Деревья» под аккуратные контурные иконки «спрятал»Loopback писал(а):Без сложностей иконку можно поставить только на стандартные кнопки и static-контролы.
Очевидное решение использовать как признак запуска программы наличие/отсутствие PID c нужным ImagePath, а не именем процесса, а при закрытии проверять аналогично процессы с путём %commander_exe% и закрывать программу тоже не по имени, вот пример:LonerD писал(а):Другими словами немного подробней.
Есть мой Тотал, настроенный. В Autorun прописан запуск программы, она запускается и работает в фоне. Я могу запускать несколько копий моего Тотала и закрывать их. Всё это время программа должна быть запущена. Когда я закрою последнюю копию моего Тотала - программа должна выгрузиться.
В то же время параллельно я могу запускать чистый Тотал или чужие сборки. Они никак не должны влиять на запуск и закрытие программы.
Код: Выделить всё
autorun.cfg
...
ShellExec /SW_HIDE "%COMMANDER_PATH%\utils\StartDummy.bat"
...
Pragma AutorunFinalizeSection
...
ShellExec /SW_HIDE "%COMMANDER_PATH%\utils\StopDummy.bat"