Orion9

|
Posted: Mon Jan 13, 2025 19:56 Post subject: |
|
|
sa
Ну, если пользователь решит сделать меню, где у него десятки пунктов будут завязаны на значки из exe-файлов, то это его выбор. Только какое отношение это имеет к возможностям Total Commander?
Да и потом, речь больше идет о DLL и ICL, содержащие пользовательские значки, помимо стандартного wcmicons.dll.
P.S. Пересмотрел и адаптировал код, который делал еще в том году, для создания трёх панелей uwdx.
 Hidden text Code: | RegisterCommand 70900 "Uwdx3Bars"
Func Uwdx3Bars(lParam)
Local bar = %COMMANDER_PATH% & "\Bars\", usr
Local b_Ctrl = IsPressed(0x11), b_Shift = IsPressed(0x10), b_Alt = IsPressed(0x12)
#создание панелей
If b_Alt Then
CreateUwdxBars()
Return
EndIf
If b_Ctrl Then
usr = "em_auto_uwdxp"
bar = bar & "Auto_uwdxp.bar"
ElseIf b_Shift Then
usr = "em_auto_uwdxa"
bar = bar & "Auto_uwdxa.bar"
Else
usr = "em_auto_uwdxe"
bar = bar & "Auto_uwdxe.bar"
EndIf
If FileExist(bar) Then
CommandExec(usr)
#ShowPopupMenu /D %bar%
Else
ShowHint("Не найден " & bar)
EndIf
EndFunc
Func CreateUwdxBars()
Local f = 0
ShowDarkHint("Создание панелей", 0)
f = f + CreateUwdxBar("Auto_uwdxa")
f = f + CreateUwdxBar("Auto_uwdxe")
f = f + CreateUwdxBar("Auto_uwdxp")
ShowDarkHint(f & " из 3 файлов было создано", 0)
EndFunc
Func CreateUwdxBar(Barname)
Local i = 0
Local bar, br2, wdx
Local uwdx_dir = "\Plugins\uwdx\"
Local uwdx_exe = "%COMMANDER_PATH%" & uwdx_dir & "uwdx.exe"
Local uwdx_con = "%%COMMANDER_PATH%%" & uwdx_dir & "uwdx.exe"
Local uwdx_obj = "%P%N"
bar = %COMMANDER_PATH% & "\Bars\" & barname & ".bar"
br2 = %COMMANDER_PATH% & "\Bars\" & 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
MsgBox("Ошибка удаления " & bar, "uwdx")
Return 0
Endif
IniWrite %bar% "Buttonbar" "Buttoncount" "0"
If ERROR = 1 Then
MsgBox("Ошибка создания " & bar, "uwdx")
Return 0
EndIf
While i < 100
IniRead /R wdx %COMMANDER_INI% "ContentPlugins" %"%i%" "stop"
If wdx="stop" Then Break
wdx = StrTrim(StrRight(wdx, StrLen(wdx)-StrPos(wdx, "\", -1)))
IniWrite %bar% "Buttonbar" %"'Button' & %i%+1" %uwdx_exe%
IniWrite %bar% "Buttonbar" %"'Menu' & %i%+1" %wdx%
IniWrite /EV- %bar% "Buttonbar" %"'Cmd' & %i%+1" "%COMSPEC% /k"
Switch Barname
Case "Auto_uwdxa"
IniWrite %bar% "Buttonbar" %"'Param' & %i%+1" '"""%uwdx_con%""" /I %wdx% ""%uwdx_obj%""'
Case "Auto_uwdxe"
IniWrite %bar% "Buttonbar" %"'Param' & %i%+1" '"""%uwdx_con%""" /E /I %wdx% ""%uwdx_obj%""'
Else
IniWrite %bar% "Buttonbar" %"'Param' & %i%+1" '"""%uwdx_con%""" /I "%wdx%"'
EndSwitch
i = i + 1
Wend
IniWrite %bar% "Buttonbar" "Buttoncount" %i%
Return 1
EndFunc
Func ShowUwdxe
CommandExec em_auto_uwdxe
EndFunc
Func ShowUwdxa
CommandExec em_auto_uwdxa
EndFunc
Func ShowUwdxp
CommandExec em_auto_uwdxp
EndFunc
|
 Hidden text Code: | [em_auto_uwdxe]
cmd=OPENBARMENU %COMMANDER_PATH%\Bars\Auto_uwdxe.bar
[em_auto_uwdxa]
cmd=OPENBARMENU %COMMANDER_PATH%\Bars\Auto_uwdxa.bar
[em_auto_uwdxp]
cmd=OPENBARMENU %COMMANDER_PATH%\Bars\Auto_uwdxp.bar
|
 Hidden text Code: | TOTALCMD#BAR#DATA
70900
%COMSPEC%
Панели Uwdx|Alt - Создать панели|Ctrl - Структура полей|Shift - Все поля плагина
-1
|
Пользовательски команды можно привязать к хоткеям или кликам мышки, например:
Code: | ControlSetMouseAction /R /K:C 3 ShowUwdxe
ControlSetMouseAction /R /K:C /K:S 3 ShowUwdxa
|
|
|