[WCX] CopyTree - копирование с сохранением структуры

Обсуждение только плагинов и утилит для Total Commander.

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

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение 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.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

По идее радиокнопка должна нажиматься так:

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

sendmsg(findwnd(TRadioButton,,findwnd(TMyGroupBox,,findwnd(TDLGZIP),3),$F5))
Но почему-то не отрабатывает.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение 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)"
Наверное, можно подсократить.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение 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
А в вашем коде кидает не по пути получателя, а по пути источника, рядом с собой. И так же не работает с символом ")".
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение 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 на любой другой плагин из списка.
Последний раз редактировалось Flasher Вт дек 05, 2017 19:20, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение 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]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ingerard
Хм. Почему-то с хоткеем команда выбора пункта не отрабатывает. :?
В конце параметров $F5 перед скобкой добавьте.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

На случай, когда ранее вызывался какой-то другой архиваторный плагин, у меня используется дополнительное нажатие радиокнопки с ZIP.

ingerard
Дело не в usercmd.ini, а в назначенных на команду клавишах. Нажатие Ctrl при выполнении команды упаковки (508) заставляет TC упаковывать в текущую панель (как при Ctrl+Alt+F5).
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

Flasher
Я убрал временно $F5, чтоб смотреть что в строку подставляет скрипт :)

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

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

Сообщение Flasher »

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

Получается, у нас патовая ситуация с этим хоткеем, пока MVV это не поправит.
Последний раз редактировалось Flasher Вт дек 05, 2017 19:57, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

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

Сообщение ingerard »

sa
Таки придется менять хоткей.

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

Сообщение Flasher »

ingerard
Ничего страшного нет. Этого же не видно. Но сам я предпочитаю короткие хоткеи с одним модификатором. Win — тоже вариант.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

ingerard писал(а):А в вашем коде кидает не по пути получателя, а по пути источника, рядом с собой. И так же не работает с символом ")".
Уточните, о каком коде говорится?
Ответить