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

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

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

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

Сообщение sa »

А я имел в виду такой вариант:

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

test_hello_1=send(`^m~(Hello, мир{tab} Это я%нHello{tab}Привет)`)
Пусть идеологически не совсем верный, но тоже работающий.

P.S.
Не сразу сообразил, что ^m и ^M совсем не одно и тоже.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Да, я в тестовой дотнетовской проге вчера это заметил. Но вчера я не понял, почему.
В моей раньше работало, т.к. регистр символов не учитывался при извлечении скан-кода, а теперь я зажимаю Shift, если надо. Так что по сути ^M - это Ctrl+Shift+m.

Думаю, уже скоро можно будет релизить, вроде всё работает. Дописываю пока Readme.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

MVV, хотел уточнить один момент. При использовании TCFS2 рядом должен находиться TCFS2.ini, а TCFS2Tools.ini обязательно или TCFS2Tools может использовать существующий TCFS2.ini?
TC 11.58 combo, Windows 11 x64
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MVV писал(а):вроде всё работает.
Кавычку придётся через TCFS2.ini вводить?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

jentoso,
И TCFS2, так и TCFS2Tools используют INI-файлы с такими же именами. Поэтому один INI-файл может быть только в случае, если переименовать TCFS2Tools.dll в TCFS2.dll. Но напомню, файл конфигурации TCFS2Tools необязателен (нужен лишь для переопределения стандартных номеров и названий команд).

sa,
Попробую для двойной кавычки добавить имя, чтобы отправлялась через фигурные скобки.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

MVV, спасибо за уточнение.
TC 11.58 combo, Windows 11 x64
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Разумеется, INI-файл TCFS2 должен лежать рядом с TCFS2, а INI-файл TCFS2Tools - рядом с модулем.

Бета 368.
Для двойной кавычки добавлена мнемоника {DQ}.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

MVV писал(а):Разумеется, INI-файл TCFS2 должен лежать рядом с TCFS2, а INI-файл TCFS2Tools - рядом с модулем.
То что INI должен быть одноименным и лежать рядом, это было мне понятно. Было непонятно то, что надо ли использовать сразу эти INI файлы. Ведь при установке TCFS2, имеется INI файл, а в архиве TCFS2Tools, такого примера нет, а не опытному не понятно что именно в этом INI надо будет прописывать.
TC 11.58 combo, Windows 11 x64
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А неопытному там ничего и не надо прописывать. :)
В Readme написано, что файл нужен только для переопределения идентификаторов.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Для двойной кавычки добавлена мнемоника {DQ}
Спасибо! Работает.

Попытался воспроизвести проблему, о которой раньше упомянул.
sa писал(а):Да уж, пока не догадался ввести delay - было страшновато.
Мне показалось, что она возникает, когда сообщение отправляется в фоновом потоке (неважно, после tcm или tem). Пример:
/ef "tcm(2400, -1) send(`%%н`)"
Если до send команда (2400) не успевает выполниться (нужен не шустрый компьютер), то после первого или второго вызова утилиты у меня происходит “залипание” клавиши Alt. Клавиша ESC после этого срабатывает как Alt+ESC, F7 как Alt+F7 и т.п. (лечится залипание нажатием самой же клавиши Alt). Ввод delay(200) перед send или указание окна в send устраняет проблему.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Возможно, это происходит оттого, что при появлении диалогового окна прежнее окно теряет фокус, посему send прекращает отправку нажатий, не отправив отжатия Alt. Посмотрю, можно ли что-то сделать, чтобы всегда отжимать зажатые модификаторы.

Можешь добавить умное ожидание с поиском нужного окна. Если findwnd вернула 0, окна еще нет. Организовать такой цикл сложно, но в принципе можно.

Макрос:

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

wait_for=if(#2<=0, 0, if (#1, 1, 0*delay(1000)+wait_for(#1, #2-1)))
Пример команды:

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

test_send_1=if(wait_for(findwnd(`TATTRIBDLG`), 5), send(`%иhello`), send(`sorry`))
Ожидает 5 секунд появления окна атрибутов. Если дождалась (для теста окно можно открыть вручную), в его поле даты/времени пишет hello, иначе просто пишет sorry.

Проблема макроса в том, что каждый оборот цикла является рекурсивным вызовом, что сильно ограничивает число итераций (не советую задавать более 100).
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MVV писал(а):умное ожидание с поиском нужного окна.
Спасибо, возможно пригодится.

Наблюдение за командой:

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

/ef "tcm(502, -1) if(wait_for(findwnd(`TATTRIBDLG`), 1), send(`~(%%иhello)`), send(`~(%%иsorry)`))"
Ожидание 2 и больше - hello, 1 – sorry (тоже в поле даты/времени), 0 – залипание Alt.
Та же команда, только tcm(502, 1).
Ожидание 1 и больше - hello, 0 – sorry (тоже в поле даты/времени).
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

У меня Alt не залипает при -1 и 0 (проверяю, нажимая русскую букву, ожидая перехода к элементу окна с подчеркнутой этой буквой).
Пишет sorry в поле ввода даты-времени. Это говорит лишь о том, что диалог появляется за тот малый интервал времени между поиском окна в wait_for и поиском окна в send. Но когда send ищет окно, оно уже есть. Если окна ещё нет, тогда send начинает посылать в окно тотала, а потом оно теряет фокус, и передача прекращается.


Бета 376.
Попробуй эту бету, здесь зажатые утилитой модификаторы отжимаются даже при прерывании передачи, включая внезапный конец строки и потерю окном фокуса. Т.е., Alt не должен залипать.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Alt не должен залипать.
Не залипает!
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Значит, причина залипания понята правильно.
Погоняй еще, если есть возможность, может, ещё что-то найдёшь, что стоит доработать.
Ответить