Страница 2 из 3
Добавлено: Пн май 20, 2013 22:27
Flasher
Avada писал(а):а потом для TCMC с параметрами создаётся итоговая кнопка
Так они в этой кнопке и склеиваются. Почему потом?

Добавлено: Пн май 20, 2013 23:12
Avada
Flasher писал(а):Почему потом?
Формировать параметры TCMC также можно (хотя, разумеется, и не обязательно) не сразу в кнопке, а в em-команде, которую затем использовать для кнопки или, если захочется, вызывать клавишами. Я так достаточно часто делаю.
Добавлено: Пн май 20, 2013 23:15
Flasher
Avada
У меня такие тоже есть, где нужно иметь и кнопку и хоткей. Но для такой задачи создавать две пользовательские + одну кнопку - многовато, ИМХО.
Добавлено: Пт май 24, 2013 00:00
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%
Добавлено: Пт май 24, 2013 00:13
Avada
ALev
Некоторые комментарии к представленному решению:
Параметры TCMC вполне можно было указать всё в том же поле "Команда", не перенося их в поле "Параметры".
Зачем указывать паузу перед выполнением сохранения настроек, не понял. У меня и без неё всё прекрасно работает. И, разумеется, пауза обозначается не в микросекундах, а в миллисекундах.
В пользовательской команде для запуска новой копии TC, если решение претендует на универсальность, надо после переменной добавлять /N.
Добавлено: Пт май 24, 2013 01:07
Flasher
Avada писал(а):Зачем указывать паузу перед выполнением сохранения настроек, не понял.
Действительно, логично было бы делать её перед запуском копии.
Добавлено: Пт май 24, 2013 09:20
ALev
Итоговый вариант кнопки, с рекомендациями специалистов:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\Tools\TCMC\TCMC.exe CM580 "EMem_TC"
%COMMANDER_EXE%
Запуск копии Total Commander
-1
Добавлено: Пт май 24, 2013 09:27
MVV
Вообще, если CM-команды посылаются через SendMessage, тотал вообще не вернет управление до завершения выполнения команды, так что пауза вообще не нужна. А TCMC посылает их именно так, что легко проверить командой TCMC CM502 - утилита будет ожидать возврата управления и висеть в памяти, пока диалог изменения атрибутов не закроется, и только потом завершится.
Добавлено: Пт май 24, 2013 09:40
ALev
Я в начале вместо 50 поставил 0 - и программа на домашнем компьютере вывела ошибку (может на ночь глядя ещё чего недоглядел...).
Добавлено: Пт май 24, 2013 09:47
Avada
Кстати, я не понял ещё, зачём в приведённом варианте кнопки указаны кавычки вокруг EMem_TC. Я в курсе, что в ридми TCMC в примерах эти кавычки есть, но какой смысл их указывать для имени пользовательской команды, не содержащего пробелов?
ALev писал(а):Я в начале вместо 50 поставил 0
Там вообще никакую задержку ставить не надо.
Добавлено: Пт май 24, 2013 10:12
ALev
Avada писал(а):зачём в приведённом варианте кнопки указаны кавычки...
Вот вы специалисты, вы и знаете где надо их ставить, где не надо. Я же тупо поставил так, как указано в Read.me. Моей задачей не было исследование возможностей утилиты, мне хотелось сделать задачу. По количеству времени и сил которые я на неё затратил - другой бы давно уже бросил; это я уж из принципа "раз начал - надо доделать, другим будет легче...".
Добавлено: Пт май 24, 2013 14:31
sa
Avada писал(а):Зачем указывать паузу перед выполнением сохранения настроек, не понял.
Вообще-то, из синтаксиса утилиты следует, что 50 это задержка (в мс) перед выполнением
каждой команды.
Добавлено: Пт май 24, 2013 16:03
Avada
sa
В том числе и сохранения настроек, так? И, следовательно, мы вновь возвращаемся к процитированному вопросу.
Добавлено: Пт май 24, 2013 16:22
sa
Avada
Другого способа задать задержку, которая, возможно, нужна для следующих за первой команд, в справке не указано.
Добавлено: Пт май 24, 2013 16:55
Flasher
Avada писал(а):но какой смысл их указывать для имени пользовательской команды, не содержащего пробелов?
В примере тоже без пробелов.
Вероятно, автор когда писал мануал, проморгал тот факт, что команда без пробелов.
sa писал(а):Вообще-то, из синтаксиса утилиты следует, что 50 это задержка (в мс) перед выполнением каждой команды.
Подразумевается, что перед любой командой можно (но не всегда нужно) поставить паузу. А дальше аргументация касаемо смены директорий. Автор - не англофил.