Синхронная смена каталогов
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next  :| |:
Total Commander -> Автоматизация Total Commander

#31:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 23:52
    —
ingerard wrote:
AHK это еще один лишний багаж, с которым могут быть проблемы с портативностью Sad
Багаж — да. А вот насчёт портабельности (лучше так называть) мимо. Только на днях объяснял.
ingerard wrote:
только проблема заключается потребности перезагрузки ТК.
А, ну да. Это же не usercmd.ini. Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение. Question

#32:  Author: ingerard PostPosted: Mon Dec 25, 2017 00:23
    —
Flasher
Flasher wrote:
Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение.

Попробую Smile

У меня тут еще появилась одна просьба. Сделайте и для выхода из папки параметр /n, если он есть то выход из разных папок невозможен, если его нет, то выход только из папки в активной панели.

#33:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 01:16
    —
ingerard
Сделал. Но вообще я изначально так планировал до обозначения одностороннего условия.

P.S.: Только не называйте ключи параметрами, они не зависят от очерёдности.

#34:  Author: ingerard PostPosted: Mon Dec 25, 2017 01:34
    —
Flasher wrote:
Сделал. Но вообще я изначально так планировал до обозначения одностороннего условия.

Спасибо!

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

Code:
/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)))))

#35:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 12:17
    —
ingerard
Code:
/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)))

Но, как видно, такую установку без кликов и выбора в браузере команд Тотал не воспринимает. Sad

Но есть и 3-й вариант. Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.

#36:  Author: ingerard PostPosted: Mon Dec 25, 2017 13:24
    —
Flasher wrote:
Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.

Отличный вариант! Но можно подробней чем менять в usercmd.ini извне? TCFS2?

#37:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 13:49
    —
ingerard
Угу:
Code:
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 записываем вызов скрипта. Можно сделать и смену иконки в панели.

#38:  Author: ingerard PostPosted: Mon Dec 25, 2017 14:09
    —
Flasher
С учетом что у меня два хоткея Enter и Backspace, то чуть подправил код.

Usercmd.ini
Code:
[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
Code:
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)


Кнопка:
Code:
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 wrote:
Можно сделать и смену иконки в панели.

Было бы неплохо. Я так понимаю это надо редактировать в баре button=?


Last edited by ingerard on Tue Dec 26, 2017 11:54; edited 5 times in total

#39:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 14:17
    —
ingerard
Через часок вернусь — добьём.

#40:  Author: ingerard PostPosted: Mon Dec 25, 2017 14:41
    —
Flasher
Хорошо, я выше чуть подредактировал, наверно не сильно оптимизировано...

#41:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 18:06
    —
ingerard
Более менее. Только пути к скрипту надо в кавычки брать на случай переноса.
Сами записи при желании можно оптимизировать за счёт созданных команд/макросов в TCFS2.ini. А обновлять по принципу:
Code:
"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)

#42:  Author: ingerard PostPosted: Mon Dec 25, 2017 21:25
    —
Flasher
Сделал, может и коряво, но работает Smile Выше обновил.

#43:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 22:17
    —
ingerard
Коряво работает или сделал? Smile
Я бы в TCFS2.ini так записал:
Code:
[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-ю.
Также в угоду скорости вызова я предпочитаю в кнопках писать команду запуска приложения, а не пользовательскую.

#44:  Author: ingerard PostPosted: Mon Dec 25, 2017 22:53
    —
Flasher wrote:
Коряво работает или сделал?

Выглядит коряво, но работает хорошо Very Happy Но конечно же возьму ваш вариант.
Flasher wrote:
Вообще 76 иконка несколько сомнительна

Та то я для примера поставил, а так то я сразу сделал иконку с фоном как нажатая.
Flasher wrote:
в кнопках писать команду запуска приложения, а не пользовательскую.

Можете подробней, не совсем понял.

#45:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 23:03
    —
ingerard wrote:
но работает хорошо Very Happy
Это радует. Smile
ingerard wrote:
Но конечно же возьму ваш вариант.
Надеюсь, с подстановками проблем не возникнет. Wink
ingerard wrote:
а так то я сразу сделал иконку с фоном как нажатая.
А, ну, ОК.
ingerard wrote:
Можете подробней, не совсем понял.
Я выше приводил пример с кнопкой вызова TCFS2. em_SyncDirSwitch я бы делал только для хоткея и/или главного меню, но не для кнопки.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next  :| |:
Page 3 of 9

Powered by phpBB © 2001, 2005 phpBB Group