Руководство по WM_COPYDATA

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

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

Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Flasher писал(а):Хм. Сравнение без %, а вывод с?
В выражениях имена переменных не обрамляются знаками процента. Исключением являются массивы и другие структуры с двойной отсылкой. В результате, чтобы в выражениях различать переменные и буквальные строки, последние необходимо заключать в двойные кавычки.
А в msgbox переменные только с процентами нужно записывать, иначе это считается за текст.
В любом случае можно обрамить с обоих сторон знаком % (старый способ) или поставить один знак %, затем пробел и переменную (а параметры %1%, %2% и т.д. вроде обязательно двумя % надо обрамлять)
Равноценные записи:
MsgBox, % retVal
MsgBox, %retVal%
В синтаксисе много неочевидных вещей, сокращений (например, после MsgBox в предыдущем примере запятые можно опустить)... Частично это пытаются исправить в AHK 2.0, которая уже несколько лет всё ещё на стадии альфы.


Добавлено спустя 1 час 27 минут:

Just another working AHK script - скромно охарактеризовал автор свой скрипт.
Он хоть и на пять строк длиннее (если это суть важно), зато всё-в-одном - и данные получать (причём сразу можно их в желаемую переменную пихать), и пользовательские команды выполнять, и команду CD выполнять.
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD
В общем, суть ясна. Забытое вернуть можно лишь подсказкой и практикой.
SN на твоём месте я бы не стал трогать. Слишком много кода, когда есть параметр.
Остаётся пока вопрос - как заполучить список (в т.ч. выделенный) без буфера?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Flasher писал(а):Остаётся пока вопрос - как заполучить список (в т.ч. выделенный) без буфера?
Я не знаю даже как это сделать с буфером... Именно выделенные файлы.
Flasher писал(а):я ... использую механизм Хелпера, там он берёт только выделенное.
А вот интересно - как Хелпер берёт только выделенное, как в нём работает GetSrcSelectedFiles, какие механизмы задействует... Возможно, их можно было бы и без усилий переложить на Autohotkey. Только вот исходников Хелпера не выложено...
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD писал(а):Я не знаю даже как это сделать с буфером... Именно выделенные файлы.
Там не выделенные, а выбранные. А как не трогать под курсором - уже не тут.
LonerD писал(а):Только вот исходников Хелпера не выложено.
И что? Ты бы многое почерпнул? :)
Меня же больше интересует отображаемый список.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

[s]Нашёлся один баг. В "Сеть/FS-плагины" число элементов возвращает на один больше.
Есть кому сообщить?[/s]
Последний раз редактировалось Flasher Пн ноя 23, 2015 09:28, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Flasher
Win7x64, обе разрядности ТС, AutoIt 3.3.8.1, 3.3.12.0 и 3.3.14.2: не подтверждаю.
WinXP SP3, WinPE на базе WinXP SP2 аналогично без проблем.
Отправляю "SC", "TC", "LC", "RC".
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Отбой. Я не обратил внимания, что <Обновить>.<lnk> - это файл, а смотрел только на число папок.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

CD в отличии от стандартной команды не входит в папки архива при нахождении в нём. Например, установим курсор на C:\Test.zip\Folder.

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

│ Команда │       Параметры       │ Результат │
│—————————————————————————————————————————————│
│ cd      │ %V%Z                  │     +     │
│ TCFS2   │ /ef "tcd(`%V%Z\`,,S)" │     -     │
Кто сообщит?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А разве в CD в принципе поддерживаются %-параметры вне панели инструментов и EM-команд? Если надо, можно юзер-команду сделать с %-параметрами и дергать из TCFS2...
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

MVV
Как минимум, в меню "Запуск" должны поддерживаться. И (при некотором умении, если указывать не через стандартный диалог TC) в меню избранных каталогов.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

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

Сообщение Flasher »

MVV
Столбец "Параметры" подразумевает одноимённое поле в настройке кнопки/юзеркоманды. %-ы никакого отношения к делу не имеют. Это проверочные данные для воспроизведения.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А, так понятнее.

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

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

cd D:\test.zip\Folder\
Аналогично с кнопкой панели инструментов (присутствие %Z в данном случае ничего не решает):

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

cd
D:\test.zip\Folder
Т.е. комстроку тоже надо корректировать? А вход в архив через аргументы тотала работает?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):только если мы находимся где-то внутри архива:
А я так и написал:
Flasher писал(а):при нахождении в нём
MVV писал(а):присутствие %Z в данном случае ничего не решает
%Z, как известно, нужен исключительно при наличии других переменных параметров ТС. В моём случае это %V.
MVV писал(а):Т.е. комстроку тоже надо корректировать?
Суть не в том, на какой строке параметры. Суть в самом поведении.
MVV писал(а):А вход в архив через аргументы тотала работает?
В корень? А почему нет-то? Конечно.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV
Спасибо за запрос. Но зачем ты пишешь 'doesn't' про команду cd, ведь сам выше подтвердил, что она работает при открытом отображении заданной папки :?:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить