Страница 3 из 9
Добавлено: Вс дек 24, 2017 22:52
Flasher
ingerard писал(а):AHK это еще один лишний багаж, с которым могут быть проблемы с портативностью

Багаж — да. А вот насчёт портабельности (лучше так называть) мимо. Только на днях
объяснял.
ingerard писал(а):только проблема заключается потребности перезагрузки ТК.
А, ну да. Это же не usercmd.ini. Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение.

Добавлено: Вс дек 24, 2017 23:23
ingerard
Flasher
Flasher писал(а):Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение.
Попробую
У меня тут еще появилась одна просьба. Сделайте и для выхода из папки параметр /n, если он есть то выход из разных папок невозможен, если его нет, то выход только из папки в активной панели.
Добавлено: Пн дек 25, 2017 00:16
Flasher
ingerard
Сделал. Но вообще я изначально так планировал до
обозначения одностороннего условия.
P.S.: Только не называйте ключи параметрами, они не зависят от очерёдности.
Добавлено: Пн дек 25, 2017 00:34
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)))))
Добавлено: Пн дек 25, 2017 11:17
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 менять с командой вызова скрипта.
Добавлено: Пн дек 25, 2017 12:24
ingerard
Flasher писал(а):Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.
Отличный вариант! Но можно подробней чем менять в usercmd.ini извне? TCFS2?
Добавлено: Пн дек 25, 2017 12:49
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 записываем вызов скрипта. Можно сделать и смену иконки в панели.
Добавлено: Пн дек 25, 2017 13:09
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=?
Добавлено: Пн дек 25, 2017 13:17
Flasher
ingerard
Через часок вернусь — добьём.
Добавлено: Пн дек 25, 2017 13:41
ingerard
Flasher
Хорошо, я выше чуть подредактировал, наверно не сильно оптимизировано...
Добавлено: Пн дек 25, 2017 17:06
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)
Добавлено: Пн дек 25, 2017 20:25
ingerard
Flasher
Сделал, может и коряво, но работает

Выше обновил.
Добавлено: Пн дек 25, 2017 21:17
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-ю.
Также в угоду скорости вызова я предпочитаю в кнопках писать команду запуска приложения, а не пользовательскую.
Добавлено: Пн дек 25, 2017 21:53
ingerard
Flasher писал(а):Коряво работает или сделал?
Выглядит коряво, но работает хорошо

Но конечно же возьму ваш вариант.
Flasher писал(а):Вообще 76 иконка несколько сомнительна
Та то я для примера поставил, а так то я сразу сделал иконку с фоном как нажатая.
Flasher писал(а):в кнопках писать команду запуска приложения, а не пользовательскую.
Можете подробней, не совсем понял.
Добавлено: Пн дек 25, 2017 22:03
Flasher
ingerard писал(а):но работает хорошо

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