Страница 16 из 25

Добавлено: Вт дек 05, 2017 11:25
sa
По-моему, так работает и с TComboBox:

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

"tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) send(`~(%%Z-)`,findwnd(TDLGZIP)) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)"
Радиокнопку нажимал из send.

Добавлено: Вт дек 05, 2017 11:47
Flasher
По идее радиокнопка должна нажиматься так:

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

sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP),3),$F5))
Но почему-то не отрабатывает.

Добавлено: Вт дек 05, 2017 13:32
sa
Вот так, как будто:

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

/ef "%Z tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),9),$F5) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$f5)"
Наверное, можно подсократить.

Добавлено: Вт дек 05, 2017 15:25
ingerard
Flasher
Нормально не работает с путями в которых встречается символ ")", например название папки "3) 12 жовтня 2016\", если в нее кидать, то появляется ошибка "Unavailable key", а потом:

Error:
Wrong expression
Expression:
@<=if_empty(,5)*20&&if(findwnd(TAltEdit,,,0,1),settext(CopyTree:"C:\3) 12 жовтня 2016\",findwnd(TAltEdit,,,0,1))*0,delay(50))
Terminate process?


sa
А в вашем коде кидает не по пути получателя, а по пути источника, рядом с собой. И так же не работает с символом ")".

Добавлено: Вт дек 05, 2017 18:51
Flasher
sa писал(а):Вот так, как будто:
А, я скобку не туда воткнул..
А зачем перед этим кликать на ARJ*-радиокнопку, я не понял? Это лишнее.

ingerard
У меня так работает с наличием скобок (да и нечему там создавать для них проблемы):

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$F5)
wcmicons.dll,1
CopyTree — выбор глубины папок для копирования|структуры выбранных объектов в другую панель
И самое главное, что в такой кнопке уже нет необходимости подбирать имя за ТС при замене CopyTree на любой другой плагин из списка.

Добавлено: Вт дек 05, 2017 19:19
ingerard
Flasher
Если запускать с кнопки, то копирует как надо в другую панель, но если прописать в usercmd.ini, то копирует в текущую.

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

[em_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe
param=/ef tcm(508,1) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),)
menu=Быстрый запуск плагина CopyTree[2]

Добавлено: Вт дек 05, 2017 19:32
Flasher
ingerard
Хм. Почему-то с хоткеем команда выбора пункта не отрабатывает. :?
В конце параметров $F5 перед скобкой добавьте.

Добавлено: Вт дек 05, 2017 19:34
sa
На случай, когда ранее вызывался какой-то другой архиваторный плагин, у меня используется дополнительное нажатие радиокнопки с ZIP.

ingerard
Дело не в usercmd.ini, а в назначенных на команду клавишах. Нажатие Ctrl при выполнении команды упаковки (508) заставляет TC упаковывать в текущую панель (как при Ctrl+Alt+F5).

Добавлено: Вт дек 05, 2017 19:40
ingerard
Flasher
Я убрал временно $F5, чтоб смотреть что в строку подставляет скрипт :)

Добавлено спустя 3 минуты:

sa
Точно, вот проблемы с этими горячими клавишами, и как быть?

Добавлено: Вт дек 05, 2017 19:40
Flasher
sa писал(а):На случай, когда ранее вызывался какой-то другой архиваторный плагин
Так и что, что он вызывался? Как это меняет ситуацию, если выбор безусловный?
Ага, похоже, что меняет. Да, ZIP, забыл, что отсчёт с нуля.

Получается, у нас патовая ситуация с этим хоткеем, пока MVV это не поправит.

Добавлено: Вт дек 05, 2017 19:42
sa
ingerard писал(а):и как быть?
Win+F5 :)

Добавлено: Вт дек 05, 2017 19:59
Flasher
Придумал.
... tcm(508,1) tcm(4006) ... tcm(4006,1)
Вторую нужно в конец:

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

[em_FastCopyTree]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe
param=/ef tcm(508,1) tcm(4006) eval(select_wait(`CopyTree`,findwnd(TComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGZIP))))) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),0),$F5) sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP)),3),$F5) sendmsg(findwnd(TButton,,findwnd(TDLGZIP),3),$F5) tcm(4006,1)
menu=Быстрый запуск плагина CopyTree[2]

Добавлено: Вт дек 05, 2017 20:13
ingerard
sa
Таки придется менять хоткей.

Flasher
Заработало, но теперь думаю что лучше, менять хоткей или использовать такой замудренный код :) Посоветуйте, ничего что оно с фокусом панели играет?

Добавлено: Вт дек 05, 2017 20:16
Flasher
ingerard
Ничего страшного нет. Этого же не видно. Но сам я предпочитаю короткие хоткеи с одним модификатором. Win — тоже вариант.

Добавлено: Ср дек 06, 2017 07:53
sa
ingerard писал(а):А в вашем коде кидает не по пути получателя, а по пути источника, рядом с собой. И так же не работает с символом ")".
Уточните, о каком коде говорится?