Добавлено: Ср дек 25, 2024 19:39
Думаю, стоит. Особенно если что-то еще полезное потом добавить, чтобы поток не только за сменой языка следил. Хотя правильнее и интереснее, наверное, было бы, если бы К.Гислер сделал что-то наподобие секции Events в wincmd.ini для запуска em_ команд в ответ на те или иные события. Например:AkulaBig писал(а):Вот и хочется проверить, стоит-ли игра свеч.
Код: Выделить всё
[Events]
LangChange=em_usercmd1, em_usercmd2Кажется, в вашей сборке была коллекция иконок:
Код: Выделить всё
Alesy
Fenix
Flat
Fugue
Image
Impomezia
PE
Titan
Universal
VIM
X-Qute
Сaramel
[cut]
Код: Выделить всё
Func IconsPanel(Silent = 0)
Local sPath, sName, sFile, hint, icons
sPath = RequestCopyDataInfo("SP")
sName = RequestCopyDataInfo("SN")
sFile = sPath & sName
If Not FileExist(sFile) Then
ShowHint("Файл не существует " & sFile)
Return
Endif
If StrPos(FileGetAttr(sFile), "D") Then
ShowHint("Каталог")
Return
Endif
obj = Plugin("IconLibrary")
If ERROR = 0 then
obj.FileName = sFile
icons = obj.GetValue(0)
If icons > 0 then
hint = "Иконок: " & icons
CreateIconsBar(sFile, icons)
Else
hint = "Нет иконок"
Endif
hint &= & auCRLF & "Файл " & sFile
Free(obj)
Else
hint = "Plugin Error " & ERROR
Endif
If icons = 0 Then ShowHint(hint)
EndFunc
Func CreateIconsBar(FileName, Icons)
ShowDebugHint("Loading Icons...", 0)
Local bar = %COMMANDER_PATH% & "\Bars\Auto_icons.bar"
Local br2 = %COMMANDER_PATH% & "\Bars\Auto_icons.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
ShowDebugHint("Ошибка удаления " & bar, 0)
Return
Endif
IniWrite %bar% "Buttonbar" "Buttoncount" "0"
If ERROR = 1 Then
ShowDebugHint("Ошибка создания " & bar, 0)
Return
EndIf
IniRead /R def %COMMANDER_INI% "Buttonbar" "Buttonbar" "%COMMANDER_PATH%\DEFAULT.BAR"
IniWrite %bar% "Buttonbar" "Button1" "Wcmicons.dll,15"
IniWrite %bar% "Buttonbar" "Cmd1" %def%
IniWrite %bar% "Buttonbar" "Menu1" "Вернуться"
For i = 2 to Icons+1
IniWrite %bar% "Buttonbar" %"'Cmd' & %i%" "100000"
IniWrite %bar% "Buttonbar" %"'Menu' & %i%" %"%i%-2"
IniWrite %bar% "Buttonbar" %"'Button' & %i%" %"%FileName% & ','& %i%-2"
Next
IniWrite %bar% "Buttonbar" "Buttoncount" %"%Icons%+1"
WinSetState(23)
ShowDebugHint("Menu." & auCRLF & i-1 & " items created.", 0)
CommandExec("em_open_icons_panel")
EndFunc
Func ShowDebugHint(DebugHint, HintSleep = 1000)
SetHintParam("ShowHint", "Font", 10, "Arial")
SetHintParam("ShowHint", "BackColor", 0x001C1C1C)
SetHintParam("ShowHint", "Text", 0xFFFFFF)
ShowHint(DebugHint)
If HintSleep > 0 Then
Sleep(HintSleep)
WinSetState(23)
Else
Sleep(100)
Endif
SetHintParam("ShowHint", "Reload")
EndFunc
[cut="Кнопка"]TOTALCMD#BAR#DATA
60006
%COMMANDER_EXE%
Загрузить иконки на панель
60006
[/cut]
Потребуется плагин IconLibrary:
http://wincmd.ru/plugring/iconlibrary.html
Кнопка создает панель из иконок файла под курсором и загружает ее на главную панель инструментов. Файл панели %COMMANDER_PATH%\Bars\Auto_icons.bar. В usercmd.ini нужно добавить команду em_open_icons_panel:
Код: Выделить всё
[em_open_icons_panel]
cmd=OPENBAR1
param=%|COMMANDER_PATH|\Bars\Auto_icons.barВ общем, получилось удобно. Мне понравилось. Эх... нахватаю теперь себе иконок!