#cs Скрипт автоматизации работы с Инструментом группового переименования (ИГП, Multi-rename tool или MRT) Важно: см. описание параметра MultiRenameLoadSettings, самое простое - несуществующее имя шаблона, например, "MultiRenameLoadSettings=none", чтобы ИГП был с настройками по умолчанию ([N], [E] и т.д.) Проверки MultiRenameLoadSettings нет! 2016.02.18 #ce #NoTrayIcon Opt('WinWaitDelay', 100) Global Const $WM_TC_COMMAND = 0x0433 Local $hTC, $sPath, $sExeName, $hWnd ;Ищем окно ТС $hTC = WinGetHandle('[CLASS:TTOTAL_CMD]') If @error Then MsgBox(48 + 4096, 'MRT', 'Окно ТС не найдено!') Exit EndIf ;Читаем MultiRenameEdit в секции [Configuration] wincmd.ini $sPath = IniRead(EnvGet('COMMANDER_INI'), 'Configuration', 'MultiRenameEdit', 'default') If $sPath = 'default' Then $sExeName = 'notepad.exe' Else $sExeName = StringRegExpReplace($sPath, '^.*\\', '') EndIf ;Если окно ИГП уже существует - выходим с предупреждением If WinExists('[CLASS:TMultiRename]') Then MsgBox(48 + 4096, 'MRT', 'Инструмент группового переименования уже запущен!') Exit Else ;cm_MultiRenameFiles DllCall("user32.dll", "int", "PostMessage", "hwnd", $hTC, "int", $WM_TC_COMMAND, "wparam", 2400, "lparam", 0) ;Ждем окно $hWnd = WinWait('[CLASS:TMultiRename]', '', 25) ;Шлем нажатия клавиш ControlSend($hWnd, '', '', '{F10}{DOWN}{DOWN}{ENTER}') EndIf ;Ждем появления процесса редактора ProcessWait($sExeName, 60) ;Проверяем существование процесса редактора каждые 150 мс While 1 Sleep(150) If Not ProcessExists($sExeName) Then ExitLoop WEnd ;Ищем окно подтверждени ИГП и щлем Enter ControlSend(WinGetHandle('[TITLE:Total Commander; CLASS:#32770'), '', '', '{ENTER}') |