Запуск копии Total Commander с сохранёнными настройками

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada писал(а):а потом для TCMC с параметрами создаётся итоговая кнопка
Так они в этой кнопке и склеиваются. Почему потом? :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Flasher писал(а):Почему потом?
Формировать параметры TCMC также можно (хотя, разумеется, и не обязательно) не сразу в кнопке, а в em-команде, которую затем использовать для кнопки или, если захочется, вызывать клавишами. Я так достаточно часто делаю.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada
У меня такие тоже есть, где нужно иметь и кнопку и хоткей. Но для такой задачи создавать две пользовательские + одну кнопку - многовато, ИМХО.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ALev
Сообщения: 58
Зарегистрирован: Сб дек 29, 2007 12:15

Сообщение ALev »

В общем для тех кого заинтересовал этот вопрос, и не хочется "парить мозги" - готовое решение:

>> Кнопка:

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\Tools\TCMC\TCMC.exe
50 CM580 "EMem_TC"
%COMMANDER_EXE%
Запуск копии Total Commander


-1
Где:
50 - пауза в миллисекундах; меньше не надо, а то выведет ошибку (как далее выяснится не нужен)
CM580 - cm_ConfigSaveSettings (580 номер команды Сохранить настройки)
"EMem_TC" - пользовательская команда em_TC



>> em_команда (пользовательская, категория usercmd.ini):
Имя команды: em_TC
Команда: %COMMANDER_EXE%
Последний раз редактировалось ALev Пт май 24, 2013 09:18, всего редактировалось 2 раза.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

ALev
Некоторые комментарии к представленному решению:
Параметры TCMC вполне можно было указать всё в том же поле "Команда", не перенося их в поле "Параметры".
Зачем указывать паузу перед выполнением сохранения настроек, не понял. У меня и без неё всё прекрасно работает. И, разумеется, пауза обозначается не в микросекундах, а в миллисекундах.
В пользовательской команде для запуска новой копии TC, если решение претендует на универсальность, надо после переменной добавлять /N.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada писал(а):Зачем указывать паузу перед выполнением сохранения настроек, не понял.
Действительно, логично было бы делать её перед запуском копии.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ALev
Сообщения: 58
Зарегистрирован: Сб дек 29, 2007 12:15

Сообщение ALev »

Итоговый вариант кнопки, с рекомендациями специалистов:

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\Tools\TCMC\TCMC.exe CM580 "EMem_TC"

%COMMANDER_EXE%
Запуск копии Total Commander


-1
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Вообще, если CM-команды посылаются через SendMessage, тотал вообще не вернет управление до завершения выполнения команды, так что пауза вообще не нужна. А TCMC посылает их именно так, что легко проверить командой TCMC CM502 - утилита будет ожидать возврата управления и висеть в памяти, пока диалог изменения атрибутов не закроется, и только потом завершится.
ALev
Сообщения: 58
Зарегистрирован: Сб дек 29, 2007 12:15

Сообщение ALev »

Я в начале вместо 50 поставил 0 - и программа на домашнем компьютере вывела ошибку (может на ночь глядя ещё чего недоглядел...).
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Кстати, я не понял ещё, зачём в приведённом варианте кнопки указаны кавычки вокруг EMem_TC. Я в курсе, что в ридми TCMC в примерах эти кавычки есть, но какой смысл их указывать для имени пользовательской команды, не содержащего пробелов?
ALev писал(а):Я в начале вместо 50 поставил 0
Там вообще никакую задержку ставить не надо.
Даже самая богатая фантазия
Не представит себе наши безобразия.
ALev
Сообщения: 58
Зарегистрирован: Сб дек 29, 2007 12:15

Сообщение ALev »

Avada писал(а):зачём в приведённом варианте кнопки указаны кавычки...
Вот вы специалисты, вы и знаете где надо их ставить, где не надо. Я же тупо поставил так, как указано в Read.me. Моей задачей не было исследование возможностей утилиты, мне хотелось сделать задачу. По количеству времени и сил которые я на неё затратил - другой бы давно уже бросил; это я уж из принципа "раз начал - надо доделать, другим будет легче...".
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Avada писал(а):Зачем указывать паузу перед выполнением сохранения настроек, не понял.
Вообще-то, из синтаксиса утилиты следует, что 50 это задержка (в мс) перед выполнением каждой команды.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

sa
В том числе и сохранения настроек, так? И, следовательно, мы вновь возвращаемся к процитированному вопросу.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Avada
Другого способа задать задержку, которая, возможно, нужна для следующих за первой команд, в справке не указано.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada писал(а):но какой смысл их указывать для имени пользовательской команды, не содержащего пробелов?
В примере тоже без пробелов. :wink:
Вероятно, автор когда писал мануал, проморгал тот факт, что команда без пробелов.
sa писал(а):Вообще-то, из синтаксиса утилиты следует, что 50 это задержка (в мс) перед выполнением каждой команды.
Подразумевается, что перед любой командой можно (но не всегда нужно) поставить паузу. А дальше аргументация касаемо смены директорий. Автор - не англофил.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить