Страница 1 из 2

Можно ли передать в параметры команду из usercmd.ini?

Добавлено: Сб апр 27, 2024 10:33
Strek
Например у меня есть такая команда em_cdroot, можно ли её передать в парметры, по типу Эtotalcmd.exe em_cdroot"

Добавлено: Сб апр 27, 2024 10:52
Avada
Strek
Нет, такого синтаксиса не существует. Если "по типу", то выполнить какие-то команды при запуске TC можно, но это материал не для "Общих вопросов". См., например, русские справки плагинов Autorun (с помощью CommandExec) или TWinKey (через страницу настроек "Разное").
И очень советую то, о чём уже много раз говорилось: надо давать в сообщении ВСЁ описание проблемы, не разбивая его между постом и заголовком.

Добавлено: Сб апр 27, 2024 12:17
Strek
Avada писал(а): Autorun
Немного не то.
Задача какая - запуск TC извне, например ярлык на панели задач, при запуске которого будет выполняться пользовательская команда, но не всегда. То бишь чтобы было два ярлыка, один обычно, а один с пользовательской командой.

Добавлено: Сб апр 27, 2024 13:53
Avada
Strek
Например, запускать TC двумя ярлыками с разным значением параметров /i= для wincmd.ini. В одном конфиге нужный плагин из числа упомянутых загружается, а в другом нет.

Добавлено: Сб апр 27, 2024 14:33
Strek
Avada писал(а):запускать TC двумя ярлыками с разным значением параметров /i= для wincmd.ini
Наверное эта секция?
ContentPlugins
ContentPlugins64
То бишь в первом разделе я удалил строку с полным путём к плагину и эти строки с нумерацией этого плагина (AutoRun).
8_detect=
8_date=1354673203
8_flags=0

В другой номер со значением этого плагина.
Во втором конфиге оставил.

Спасибо.

Но есть странность. Если запускаю копию с autorun, то в противоположной панели пропадает навигация
Изображение

Добавлено: Сб апр 27, 2024 15:17
Avada
Strek
Не надо использовать такие варварские способы. Обычное отключение Autorun выполняется через диалог настройки этого типа плагинов (кнопка "Удалить" при курсоре на строке плагина) и не требует никакой ручной правки INI-файла. (А если при удалении строк вручную ещё и забыть перенумеровать вручную начальные номера у строк для следующих плагинов, будет особенно весело.) А в секцию [ContentPlugins64] вообще не следует никогда лезть руками, там полная автоматика.
А почему у вас при наличии Autorun где-то что-то пропадает, я, не видя ваших настроек, сказать не могу. Скрин ничего не поясняет.

Добавлено: Сб апр 27, 2024 16:14
Strek
Avada писал(а):Обычное отключение Autorun выполняется через диалог настройки этого типа плагинов (кнопка "Удалить" при курсоре на строке плагина)
Думал, что он из ТС удаляется, что означало бы, что уже и конфиг с autorun не работал бы. Но если так, то в переводе можно было бы исправить с "Удалить" на "Отключить".

Конфиги

Добавлено: Сб апр 27, 2024 17:09
Orion9
Strek
Avada предлрожил рабочий вариант, но вы намучитесь с конфигами, особенно если будите их в последствии менять, что неизбежно.

Думаю, без скрипта вам все-равно не обойтись, тем более что он не такой сложный в конкретном случае. Вот пример на Autohotkey v2
[cut]

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

Run "c:\Portable\T 11 03\TOTALCMD.EXE",,, &pid
WinWait "ahk_pid " pid
SendUserCommand("em_cdroot")

SendUserCommand(userCommand) {
    static EM := 19781, WM_COPYDATA := 0x4A
    ansiBuf := Buffer(StrPut(userCommand, 'CP0'))
    StrPut(userCommand, ansiBuf, 'CP0')
    COPYDATASTRUCT := Buffer(A_PtrSize * 3)
    NumPut('Ptr', EM, 'Ptr', ansiBuf.size, 'Ptr', ansiBuf.ptr, COPYDATASTRUCT)
    SendMessage WM_COPYDATA,, COPYDATASTRUCT,, 'ahk_class TTOTAL_CMD'
}
[/cut]

Добавлено: Сб апр 27, 2024 18:32
Avada
Strek
Там и без перевода никакого "отключить" нет (указано "Remove"). По факту это не отключение (отключают, перенося информацию в другое место, например, в TC Plugins Manager, но там это названо запретом), а удаление всей информации о плагине из INI-файла (при сохранении, однако, в целости самой папки плагина). А на анализ ваших файлов у меня, к сожалению, нет сейчас времени. Может быть, ещё кто-то поможет.

Добавлено: Сб апр 27, 2024 21:11
Orion9
Еще вариант сделать батник:

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

set emcdroot=1
start "" "c:\Portable\T 11 03\TOTALCMD.EXE"
Autorun.cfg

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

If %emcdroot% = 1 Then
   CommandExec em_cdroot
EndIf
Но тогда в окружении всегда должна быть emcdroot=0

Добавлено: Вс апр 28, 2024 04:04
Strek
Orion9 писал(а):Avada предлрожил рабочий вариант, но вы намучитесь с конфигами, особенно если будите их в последствии менять, что неизбежно.
Как теперь поступить, чтобы не было неизбежностей?
Всё вернуть назад?

Добавлено: Вс апр 28, 2024 05:32
Avada
Strek
Неизбежность в том, что какие-то настройки когда-то придётся менять, и это придётся, видимо, учитывать в обоих версиях wincmd.ini. Замечу, что я дал вам рабочее решение, но сам так делать не стал бы, поскольку во внешнем вызове TC разными ярлыками с автозапуском команды и без просто не нуждаюсь. (И зачем вам это вообще нужно, даже не пытаюсь понять.)
Бэкапы при таких процедурах следовало бы сохранять, естественно. Впрочем, там не настолько большая разница с прошлым состоянием. Если хотите "всё вернуть назад", то у вас, насколько понимаю, изначально были wincmd.ini с подключением Autorun и конфиг плагина без спецкоманды. Следовательно, к этому и надо вернуться. Старый инишник должен остаться для одного из ярлыков (но даже если нет, достаточно просто обратно включить плагин по обычной схеме установки: цветовую схему для его автозапуска вы, кажется, не удаляли). И, конечно, надо убрать из Autorun.cfg строку с вызовом этот пользовательской команды.
Альтернативные методики, предложенные не мной, не обсуждаю: как уже сказано, практического интереса к решению данной задачи у меня нет никакого.

Добавлено: Вс апр 28, 2024 10:08
Orion9
Strek
По конфигам и тонким настройкам ТС лучше, чем Avada вряд ли кто ответит. Я же, в свою очередь, просто интересовался автоматизацией (в ТС и не только) последние месяцы, поэтому и ответил из того, что знаю.

Есть еще утилита AltRun, позволяющая переназначать переменные окружения при запуске. Автора этого довольно интересного лаунчера просили добавить возможноть передачи (запуска) команд ТС в параметрах, но он давно не отмечался в теме.

Добавлено: Вс апр 28, 2024 14:04
Strek
Orion9 писал(а):AltRun
Вот эта?
Изображение
Avada писал(а):(И зачем вам это вообще нужно, даже не пытаюсь понять.)
Ну та самая мелочь, которая приятна.
Запуск уже с нужным открытием SFTP в нужном каталоге при необходимости.
Avada писал(а):Бэкапы при таких процедурах следовало бы сохранять,
Та регулярно делаю, просто на будущее знать, если что.

Добавлено: Вс апр 28, 2024 16:39
Orion9
Вот эта?
Да, это она. Может быть полезна вместо батника, чтобы передать переменную окружения в запускаемую программу. Батник ведь еще и скрыть придется как-то, иначе окно консоли будет мелькать, портить весь кайф.))