Меню для TC. Я его назначил на горячую клавишу F2 в Total Commander и в настоящее время активно использую в работе. По крайней мере появилось то, чего мне всегда нехватало - вызов неких программ прямо с клавиатуры путем выбора. Для расширения функционала написаны подскрипты, запускаемые из этого меню и которым передаются параметры из TC.
Две особенности, характеризующий эти скрипты:
1) они являются графическими оболочками к уже существующим программам, предоставляющими простую возможность запустить консольную программу без забивки длинных консольных параметров. Выбрал что-то в TC, нажал F2, перешел к нужному скрипту и запустил. Таким образом, работа сильно упрощена. Что и требовалось.
2) все настройки хранятся в отдельном файле Autoit.ini, в директории Autoit. Таким образом, если какие либо параметры выставлялись, они будут восстановлены при следующем запуске скрипта. Очень удобно.
Основной код меню.
#include <GUIConstants.au3> $AUtPath = IniRead ( @WindowsDir & "\Autoit.ini", "AutoIt", "AutoIt", "") $WidBut = 250 $HeiBut = 22 $NumBut = 6 $Border = 10 Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $size = WinGetPos( "Program Manager") $mainwindow = GUICreate("Меню", $WidBut+$Border*2, $HeiBut*$NumBut+$Border*2, $size[2]/2-$WidBut/2-$Border, $size[3]/2-$HeiBut*$NumBut/2-$Border, $WS_POPUP) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") $Button1 = GUICtrlCreateButton ( "Кодирование WAV в WMA", $Border, $Border+$HeiBut*0, $WidBut, $HeiBut, $BS_FLAT) $Button2 = GUICtrlCreateButton ( "Wget - даунлоадер", $Border, $Border+$HeiBut*1, $WidBut, $HeiBut, $BS_FLAT) $Button3 = GUICtrlCreateButton ( "DJVU - кодировщик", $Border, $Border+$HeiBut*2, $WidBut, $HeiBut, $BS_FLAT) $Button4 = GUICtrlCreateButton ( "Извлечение изображений из PDF", $Border, $Border+$HeiBut*3, $WidBut, $HeiBut, $BS_FLAT) $Button5 = GUICtrlCreateButton ( "Кодирование+декодирование MP3", $Border, $Border+$HeiBut*4, $WidBut, $HeiBut, $BS_FLAT) $Button6 = GUICtrlCreateButton ( "Создание Vob-ов", $Border, $Border+$HeiBut*5, $WidBut, $HeiBut, $BS_FLAT) GUISwitch($mainwindow) GUISetState(@SW_SHOW) GUICtrlSetOnEvent($Button1, "Button1") GUICtrlSetOnEvent($Button2, "Button2") GUICtrlSetOnEvent($Button3, "Button3") GUICtrlSetOnEvent($Button4, "Button4") GUICtrlSetOnEvent($Button5, "Button5") GUICtrlSetOnEvent($Button6, "Button6") While 1 Sleep(1000) ; Idle around WEnd Func CLOSEClicked() Exit EndFunc Func Button1() ShellExecute ('"' & $AUtPath & '"', "WAV2WMA.au3" & " " & $CmdLine[1] & " " & $CmdLine[2] & " " & $CmdLine[3]) CLOSEClicked () EndFunc Func Button2() ShellExecute ('"' & $AUtPath & '"', "Get.au3" & " " & $CmdLineRaw) CLOSEClicked () EndFunc Func Button3() ShellExecute ('"' & $AUtPath & '"', "DJVU.au3" & " " & $CmdLine[1]) Sleep(200) ; Idle around WinWaitClose ( "Конвертор TIF в DJVU", "Графическая оболочка к программе documenttodjvu.exe") CLOSEClicked () EndFunc Func Button4() ShellExecute ('"' & $AUtPath & '"', "PDFeIMG.au3" & " " & $CmdLine[1] & " " & $CmdLine[2] & " " & $CmdLine[3]) CLOSEClicked () EndFunc Func Button5() ShellExecute ('"' & $AUtPath & '"', "Lame.au3" & " " & '"' & $CmdLine[1] & '"' & " " & '"' & $CmdLine[2] & '"' & " " & '"' & $CmdLine[3] & '"') CLOSEClicked () EndFunc Func Button6() ShellExecute ('"' & $AUtPath & '"', "VobMplex.au3" & " " & '"' & $CmdLine[1] & '"' & " " & '"' & $CmdLine[2] & '"' & " " & '"' & $CmdLine[3] & '"') CLOSEClicked () EndFunc