Andrey_A_A
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору 1. Если с помощью методов утилиты командами copys, moves, то там просто: Копирование выделенных файлов\папок в другую панель (заменяя объекты), по окончанию завершить работу и выключить компьютер. Используется команда shutd Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe copys=%Z%L||"%t"!!1 shutd=9 %COMMANDER_PATH%\Wcmicons.dll,1801 Копирование выделенных файлов\папок в другую панель (заменяя объекты), по окончанию завершить работу и выключить компьютер 0 -1 | 2. Если копирование/перемещение происходит через диалоги Total Commander, то это посложнее, но тоже решается Я рассмотрю когда копирование/перемещение производится в фоновом режиме или режиме "очереди" а) Посылаем в очередь обычным способом, к примеру, видеофайлы (они объемные и на них проще тестировать) У нас появилось окно, где мы видим процесс копирования. Наша задача узнать дескриптор окна и дождаться его закрытия. Как узнать? К каждому заголовку окна при копировании добавляется окончание (Копирование) + мы знаем класс окна #32770 (узнать класс можно с помощью различных утилит - вот некоторые из них) С помощью команды exect и функции WinGetHandle() узнаем дескриптор: Получить дескриптор окна "Копирования" Total Commander в фоновом режиме или "очереди" Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe exect=$var_h=WinGetHandle('[CLASS:#32770;REGEXPTITLE:.*\(Копирование\)]')||_ViewValues('$var_h') %COMMANDER_PATH%\Wcmicons.dll,4 Получить дескриптор окна "Копирования" Total Commander в фоновом режиме или "очереди" 0 -1 | Для перемещения: Получить дескриптор окна "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe exect=$var_h=WinGetHandle('[CLASS:#32770;REGEXPTITLE:.*\(Переименование/перемещение\)]')||_ViewValues('$var_h') %COMMANDER_PATH%\Wcmicons.dll,4 Получить дескриптор окна "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" 0 -1 | Можно и объединить, тогда: Получить дескриптор окна "Копирования" или "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe exect=$var_h=WinGetHandle('[CLASS:#32770;REGEXPTITLE:.*\((Копирование|Переименование/перемещение)\)]')||_ViewValues('$var_h') %COMMANDER_PATH%\Wcmicons.dll,4 Получить дескриптор окна "Копирования" или "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" 0 -1 | Дескриптор нашли, остается теперь ожидать когда окно закроется. Это делается через функцию WinWaitClose, в итоге тестовая кнопка: Получить дескриптор окна "Копирования" или "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" + дождаться закрытия окна и выдать сообщение Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe exect=$var_h=WinGetHandle('[CLASS:#32770;REGEXPTITLE:.*\((Копирование|Переименование/перемещение)\)]')||WinWaitClose(Eval('var_h')) infbx=InfoBox2 %COMMANDER_PATH%\Wcmicons.dll,1801 Получить дескриптор окна "Копирования" или "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" + дождаться закрытия окна и выдать сообщение 0 -1 | Если всё устраивает, то переходим к: Получить дескриптор окна "Копирования" или "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" + дождаться закрытия окна и выключить компьютер Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe exect=$var_h=WinGetHandle('[CLASS:#32770;REGEXPTITLE:.*\((Копирование|Переименование/перемещение)\)]')||WinWaitClose(Eval('var_h')) shutd=9 %COMMANDER_PATH%\Wcmicons.dll,1801 Получить дескриптор окна "Копирования" или "Переименование/перемещение" Total Commander в фоновом режиме или "очереди" + дождаться закрытия окна и выключить компьютер 0 -1 |
|