TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое

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

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

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

Сообщение sa »

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

Сообщение Flasher »

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

Сообщение MVV »

Между прочим, в виндах с 2000 по 10 комбобокс в диалоге выбора файла устроен одинаково (ComboBoxEx32 с ComboBox c Edit) и имеет один и тот же идентификатор ($47C), т.к. это не Delphi, поэтому его можно однозначно получать по этому идентификатору, если добавить в TCFS2 функцию GetDlgItem.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

Сообщение MVV »

Не решит, т.к. диалог сам устанавливает текст в поле ввода (но он в случае cm_LoadSelectionFromFile пуст). Нужно пытаться как-то уловить тот факт, что диалог уже готов (возможно, винда это делает до того, как делает диалог видимым - надо проверить).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

Сообщение MVV »

Добавил ещё одну запоздалую мелочь, облегчающую отладку и эксперименты - при запуске с ключом /l все вызовы функций вместе с возвращаемыми значениями записываются в файл %TEMP%\TCFS2.log.

TCFS2 Build 574:
+ параметр /l включает ведение журнала вызовов функций в файле %TEMP%\TCFS2.log
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

По логам всё одинаково выполняется, т.е. разница в том, чем TCFS2 не управляет. Стабильно картина повторяется? На первом никогда не срабатывает (10 из 10), на втором - всегда?

Что если добавить небольшую задержку (команду delay) перед посылом Enter?

По идее, если Ctrl и Shift зажаты во время посыла Enter, они и должны обработаться как единое сочетание, т.к. эмулятор нажатия клавиш просто нажимает клавишу Enter, которая дополняет уже нажатые. И разница приходит в голову только та же, что упоминал Flasher - что в одном случае по какой-то причине (например, задержка запуска из-за менее быстрого отклика системы) клавиши успевают оказаться отжатыми...
ingerard
Сообщения: 128
Зарегистрирован: Вс дек 04, 2016 21:51

Сообщение ingerard »

MVV
Извиняюсь, поспешил сообщение удалить, помогает только если задержку 1 сек ставить. А это долго, хотелось бы быстрое срабатывание.

Без малейшей задержки ни разу не срабатывало, сколько не пробовал, а если поставить уже 50мс, то 1 через 5 может сработает.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Есть вариант: отправить сообщение BM_CLICK кнопке ОК (найти её как первую TButton в диалоге). Так зависимости от нажатых клавиш нет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

Сообщение Flasher »

MVV
Имеет проблему settext_wait, если в текст попадают скобки.

И ещё. Ты не мог бы придумать для функции loop какой-нибудь счётчик/число итераций, а то и массив значений, чтобы их подставлять в перемунную?
Если грубо: loop(anyfunc(#1), 3) или loop([134,232,312], anyfunc(#1))
Если в loop это делать неудобно, то for как новая функция вполне подойдёт.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Сдаётся мне, что не только в скобках проблема, т.к. такое работает:

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

TCFS2 /ef "tcm(2032,1) delay(1000) eval(settext_wait(`C:\List (1).txt`, findwnd(Edit,,findwnd(ComboBox,,findwnd(#32770),0,1))))"

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

TCFS2 /ef "tcm(508,1) eval(settext_wait(`CopyTree:"C:\Folder (1).txt"`,findwnd(TAltEdit,,,0,1)))"
Ага, понял, проблему вызывает несбалансированность скобок:

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

TCFS2 /ef "tcm(508,1) eval(settext_wait(`CopyTree:"C:\Folder 1).txt"`,findwnd(TAltEdit,,,0,1)))"
Хорошо впишется только новая функция, которая первым аргументом будет принимать выражение, а остальными - перебираемые значения: foreach(anyfunc(#1), 134, 232, 312)...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Ага, понял, проблему вызывает несбалансированность скобок:
Но почему же скобка внутри обратных апострофов не игнорируется?
MVV писал(а):Хорошо впишется только новая функция
Гуд. А вдобавок for(anyfunc(#1), <end>, <begin - необ., 0 по умолчанию>) впишется?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):Но почему же скобка внутри обратных апострофов не игнорируется?
Это мне предстоит выяснить...
Flasher писал(а):Гуд. А вдобавок for(anyfunc(#1), <end>, <begin - необ., 0 по умолчанию>) впишется?
Не понял, что имеется в виду. Я говорил про функцию, которая принимает вычисляемое выражение и набор аргументов произвольной длины, в том числе в 1 или 2 элемента, а тут о чём речь?
Последний раз редактировалось MVV Пт дек 08, 2017 13:52, всего редактировалось 2 раза.
Ответить