Синхронная смена каталогов

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

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

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

Сообщение Flasher »

ingerard писал(а):AHK это еще один лишний багаж, с которым могут быть проблемы с портативностью :(
Багаж — да. А вот насчёт портабельности (лучше так называть) мимо. Только на днях объяснял.
ingerard писал(а):только проблема заключается потребности перезагрузки ТК.
А, ну да. Это же не usercmd.ini. Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение. :?:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

Flasher
Flasher писал(а):Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение.
Попробую :)

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

Сообщение Flasher »

ingerard
Сделал. Но вообще я изначально так планировал до обозначения одностороннего условия.

P.S.: Только не называйте ключи параметрами, они не зависят от очерёдности.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

Flasher писал(а):Сделал. Но вообще я изначально так планировал до обозначения одностороннего условия.
Спасибо!

Пробую TCFS2, что-то никак не могу выбрать элемент в ComboBox.
Все варианты:

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

/ef tcm(495,1)
eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TDLGCONFIGALL))))

/ef tcm(495,1)
eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGCONFIGALL))))

/ef tcm(495,1)
eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TMyGroupBox,,findwnd(TPage,,findwnd(TDLGCONFIGALL)))))
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ingerard

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

/ef tcm(495,1) eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TMyGroupBox,,findwnd(TPage,,findwnd(TNotebook,,findwnd(TDLGCONFIGALL))),1),1))) eval(settext_wait(`em_SwitchSyncChangeDir`,findwnd(TAltEdit,,,0,1)))
Но, как видно, такую установку без кликов и выбора в браузере команд Тотал не воспринимает. :(

Но есть и 3-й вариант. Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

Flasher писал(а):Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.
Отличный вариант! Но можно подробней чем менять в usercmd.ini извне? TCFS2?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ingerard
Угу:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "if(ini(`%COMMANDER_PATH%\usercmd.ini`,em_SwitchSyncChangeDir,cmd,`1001`),set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SwitchSyncChangeDir,cmd,`em_SyncChangeDir`),
set_ini(`%%COMMANDER_PATH%%\usercmd.ini`,em_SwitchSyncChangeDir,cmd,`1001`))"
wcmicons.dll,75
Вкл/выкл: синхронная смена каталогов в панелях
В em_SyncChangeDir записываем вызов скрипта. Можно сделать и смену иконки в панели.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

Flasher
С учетом что у меня два хоткея Enter и Backspace, то чуть подправил код.

Usercmd.ini

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

[em_ScriptE]
cmd=%COMMANDER_PATH%\Addons\TCScript\wscript.exe "%COMMANDER_PATH%\Scripts\SyncDirOpen.vbs"
param=
[em_ScriptB]
cmd=%COMMANDER_PATH%\Addons\TCScript\wscript.exe "%COMMANDER_PATH%\Scripts\SyncDirOpen.vbs"
param=/b
[em_SyncDirOpen]
cmd=1001
[em_SyncDirBack]
cmd=2002
[em_SyncDirSwitch]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe /ef "if(Ucmd(em_SyncDirOpen,`1001`),sc_E(`em_ScriptE`)+sc_ico(`463`),sc_E(`1001`)+sc_ico(`75`)) if(Ucmd(em_SyncDirBack,`2002`),sc_B(`em_ScriptB`),sc_B(`2002`)) msg($0B,0) tcm(2945) tcm(4004) msg($0B,1) send({ESC})"
TCFS2.ini

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

Ucmd=ini(`%COMMANDER_PATH%\usercmd.ini`,#1,cmd,#2)
sc_E=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirOpen,cmd,#1)
sc_B=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirBack,cmd,#1)
sc_ico=set_ini(`%COMMANDER_PATH%\Default.bar`,Buttonbar,button6,`wcmicons.dll,`#1)
Кнопка:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe /ef "if(Ucmd(em_SyncDirOpen,`1001`),sc_E(`em_ScriptE`)+sc_ico(`463`),sc_E(`1001`)+sc_ico(`75`)) if(Ucmd(em_SyncDirBack,`2002`),sc_B(`em_ScriptB`),sc_B(`2002`)) msg($0B,0) tcm(2945) tcm(4004) msg($0B,1) send({ESC})"

wcmicons.dll,75
Вкл/выкл: синхронная смена каталогов в панелях

-1
Иконка, может кому пригодится:
Link
Flasher писал(а):Можно сделать и смену иконки в панели.
Было бы неплохо. Я так понимаю это надо редактировать в баре button=?
Последний раз редактировалось ingerard Вт дек 26, 2017 10:54, всего редактировалось 5 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ingerard
Через часок вернусь — добьём.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

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

Сообщение Flasher »

ingerard
Более менее. Только пути к скрипту надо в кавычки брать на случай переноса.
Сами записи при желании можно оптимизировать за счёт созданных команд/макросов в TCFS2.ini. А обновлять по принципу:

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

"if(ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirOpen,cmd,`1001`),set_ini(-/-)+set_ini(`%COMMANDER_PATH%\UserBar.bar`,Buttonbar,button50,`Icons\1.ico`),set_ini(-/-)+set_ini(`%COMMANDER_PATH%\UserBar.bar`,Buttonbar,button50,`Icons\2.ico`)) tcm(2945)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

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

Сообщение Flasher »

ingerard
Коряво работает или сделал? :)
Я бы в TCFS2.ini так записал:

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

[Macros]
Ucmd=ini(`%COMMANDER_PATH%\usercmd.ini`,#1,cmd,#2)
sc_E=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirOpen,cmd,#1)
sc_B=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirBack,cmd,#1) 
sc_ico=set_ini(`%COMMANDER_PATH%\Default.bar`,Buttonbar,button6,`wcmicons.dll,`#1)
А в em_SyncDirSwitch подставлял бы соответствующие переменные.

Вообще 76 иконка несколько сомнительна. Лучше потратить пару-другую минут для вставки крестика в вызволенную 75-ю.
Также в угоду скорости вызова я предпочитаю в кнопках писать команду запуска приложения, а не пользовательскую.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

Flasher писал(а):Коряво работает или сделал?
Выглядит коряво, но работает хорошо :D Но конечно же возьму ваш вариант.
Flasher писал(а):Вообще 76 иконка несколько сомнительна
Та то я для примера поставил, а так то я сразу сделал иконку с фоном как нажатая.
Flasher писал(а):в кнопках писать команду запуска приложения, а не пользовательскую.
Можете подробней, не совсем понял.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ingerard писал(а):но работает хорошо :D
Это радует. :)
ingerard писал(а):Но конечно же возьму ваш вариант.
Надеюсь, с подстановками проблем не возникнет. :wink:
ingerard писал(а):а так то я сразу сделал иконку с фоном как нажатая.
А, ну, ОК.
ingerard писал(а):Можете подробней, не совсем понял.
Я выше приводил пример с кнопкой вызова TCFS2. em_SyncDirSwitch я бы делал только для хоткея и/или главного меню, но не для кнопки.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить