Orion9

|
Posted: Sat Jan 11, 2025 23:59 Post subject: |
|
|
AkulaBig wrote: | Ну да. Причем еще от прошлого года. просили люди его уже об этом. |
Ну я так и подумал Знаменит он такими ответами: это невозможно, да то невозможно. Тут как-то в топике всплывало уже, что он когда-то говорил о невозможности изменения нижних функциональных кнопок, однако почему-то у меня сейчас на нижней кнопке выхода и левый клик висит, и правый, и клик с Ctrl, и двойной клик с Ctrl; да и сама кнопка называется не "Alt+F4 Выход", а "Autorun" - как и должна была называться с самого начала
AkulaBig wrote: | Если интересно |
А оперативно вы "залили" вопрос на англоязычный форум, даже не ожидал Смотрю там и Fla$her успел тоже отметиться - ну никак не хочет возвращаться домой, бродяга, уже даже ждать его устал
AkulaBig wrote: | Как-то мне не очень зашло. Попробую. |
Ну, это вы напрасно. Я пока не посмотрю на проценты в заголовке, спать не ложусь! А если и ложусь, то уснуть не могу
Хорошо, если серьезно: вы можете туда не только датчики производительности вывести, но и другое что-то придумать, поток-то все-равно крутится, и фактически вхолостую. Можно, например, проверку какую-нибудь раз в полчаса делать или данные из au3-скрипта переодически вытягивать - здесь есть где развернуться фантазии.
А тем временем, я опробовал новую технику создания бар-файла и передачи из него параметров назад в Autorun через cm_ команду. Очень неплохо получилось, но есть один недостаток: команда прописывается в TOTALCMD.INC, поэтому придется самостоятельно следить за этим файлом при обновлении ТС. А если команда еще имеет и русскоязычное описание в WCMD_RUS.INC, то придется следить и за этим файлом.
Из плюсов: не нужно регистрировать кучу однотипных команд для соответствия каждому пункту меню или использовать внешние утилиты для вызова, типа TCFS2.
TOTALCMD.INC
Code: | [________Autorun_________]=0
cm_UwdxBarItem=70301;Uwdx Bar Menu |
 Plugin.aucfg Code: | Global BarsPath = %COMMANDER_PATH% & "\Bars\"
RegisterCommand 70300 "UwdxBar"
RegisterCommand 70301 "UwdxBarItem"
Func UwdxBar(lParam)
Local wdx, i = 1, name, p = BarsPath, n = "Auto_uwdx", bar = p & n & '.bar'
Local b_Ctrl = IsPressed(0x11), b_Shift = IsPressed(0x10), b_Alt = IsPressed(0x12), b_Win = IsPressed(0x58)
If Not b_Ctrl And Not b_Alt And Not b_Shift Then
If FileExist(bar) Then
ShowPopupMenu /D %bar%
Else
ShowHint("Не найден " & bar)
EndIf
Return
EndIf
If b_Shift Then
CommandExec /CD:S %bar%
Return
EndIf
ShowDarkHint("Создание панели", 0)
If Not CreateNewBar(p, n, 0) Then
ShowDarkHint("Отмена операции", 0)
Return
EndIf
While i < 100
IniRead /R wdx %COMMANDER_INI% "ContentPlugins" %"%i%-1" "stop"
If wdx="stop" Then Break
name = StrTrim(StrRight(wdx, StrLen(wdx)-StrPos(wdx, "\", -1)))
IniWrite /EV- %bar% "Buttonbar" %"'Button' & %i%+1" "%COMSPEC%"
IniWrite %bar% "Buttonbar" %"'Cmd' & %i%+1" %"'cm_UwdxBarItem ' & %i%+1"
IniWrite %bar% "Buttonbar" %"'Menu' & %i%+1" "%name%"
i += 1
Wend
IniWrite %bar% "Buttonbar" "Buttoncount" %"%i%"
ShowDarkHint("Панель создана", 0)
EndFunc
Func UwdxBarItem(lParam)
Local bar = %COMMANDER_PATH% & "\Bars\Auto_uwdx.bar"
Local uwdx = %COMMANDER_PATH% & "\Plugins\uwdx\", plugin, params, f, p, n
Local b_Ctrl = IsPressed(0x11), b_Shift = IsPressed(0x10), b_Alt = IsPressed(0x12)
If Not FileExist(uwdx & "uwdx.exe") Then
ShowHint("Не найден " & uwdx & "uwdx.exe")
Return
EndIf
p = RequestCopyDataInfo("SP")
n = RequestCopyDataInfo("SN")
f = p & n
keys = '/i /e '
If b_Ctrl Then keys = "/i "
IniRead plugin %bar% "Buttonbar" %"'Menu' & lParam"
#ShowHint(lParam & ". " & b)
If b_Shift Then
ShellExec %COMSPEC% '/K TITLE %plugin% & uwdx.exe /i %plugin%' %uwdx%
Return
EndIf
ShellExec %COMSPEC% '/K TITLE %plugin% & uwdx.exe %keys% %plugin% "%f%"' %uwdx%
EndFunc |
 Functions.aucfg Code: | Func ShowDarkHint(DarkHint, HintSleep = 1000)
SetHintParam("ShowHint", "Font", 10, "Arial")
SetHintParam("ShowHint", "BackColor", 0x001C1C1C)
SetHintParam("ShowHint", "Text", 0xFFFFFF)
ShowHint(DarkHint)
If HintSleep > 0 Then
Sleep(HintSleep)
WinSetState(23)
Else
Sleep(100)
Endif
SetHintParam("ShowHint", "Reload")
EndFunc
Func CreateNewBar(BarPath, BarName, BackButton = true)
Local bar, br2, def
bar = BarPath & BarName & ".bar"
br2 = BarPath & BarName & ".br2"
ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%bar%"""
ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%br2%"""
If FileExist(bar) Then
ShowDarkHint("Ошибка удаления " & bar, 0)
Return false
Endif
IniWrite %bar% "Buttonbar" "Buttoncount" "0"
If ERROR = 1 Then
ShowDarkHint("Ошибка создания " & bar, 0)
Return false
EndIf
IniRead def %COMMANDER_INI% "Buttonbar" "Buttonbar" "%COMMANDER_PATH%\DEFAULT.BAR"
If BackButton Then
IniWrite %bar% "Buttonbar" "Button1" "wcmicons.dll,15"
IniWrite %bar% "Buttonbar" "Cmd1" %def%
IniWrite %bar% "Buttonbar" "Menu1" "Вернуться"
Endif
Return true
EndFunc
|
Модули можно подключить к основной конфинурации директивой Pragma:
Pragma Include %COMMANDER_PATH%\Ini\Scripts\Plugin.aucfg
Pragma Include %COMMANDER_PATH%\Ini\Scripts\Functions.aucfg
 Кнопка Code: | TOTALCMD#BAR#DATA
70300
%COMMANDER_EXE%
Панель плагинов Uwdx|Ctrl - Создание новой панели|Shift - Перейти к файлу панели
1
-1
|
Кнопка открывает все установленные wdx-плагины в виде меню и отображает информацию по каждому плагину в утилите uwdx.При выборе плагина по умолчанию отображаются все непустые поля файла под курсором. Удержание CTRL - все поля. SHIFT - структура плагина. Если панель существует, при нажатии на кнопку она будет открыта сразу. CTRL - пересоздание панели. SHIFT - переход к файлу панели. Название файла панели и путь к утилите uwdx.exe нужно поменять в скрипте (у меня это %COMMANDER_PATH% & "\Plugins\uwdx).
В общем, получилась еще одна неплохая и полезная кнопка, как это и всегда бывает с плагином Autorun ) |
|