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

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

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

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

Сообщение MVV »

Ага, очередной цветочек KEYEVENTF_UNICODE...
Похоже, никакие клавиатурные комбинации (да и просто одиночные клавиши - например, на голую букву A назначить какую-нибудь команду) не работают.

А со скан-кодами остаётся проблема отправки символов в иной раскладке... А то отправляешь hello, а при русской раскладке получаешь руддщ.

С вашими этими скриптами таких проблем нет? Надо будет ещё проверить в дотнете.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение MVV »

Так вроде %%ф (т.е. Alt+ф) работает?
Похоже, быстрый поиск обрабатывается иначе. А если назначить именно комбинацию с Alt, уже не работает.
В VBS-скриптах также.
А, ну если это нормально, то можно так оставить. Думаю ещё добавить модификатор для отправки чисто юникод-символов, чтобы слать текст независимо от раскладки клавиатуры. Тильду какую-нибудь:

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

send(`^M~(hello world)`)
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение MVV »

Ну без модификатора будет отправлять через скан-коды, если найдет их, остальное - юникодом. А с модификатором (~ перед символом или перед скобками, точно как и %, ^ и +) - чисто юникодом.

Ага, похоже, дотнетовский SendKeys тоже посылает всё исключительно через скан-коды, если выбрана другая раскладка, текст набирается в ней, а не в исходной. В таком случае, думаю, модификатор точно будет полезен.

Бета 364.
Добавлен модификатор ~ для прямой отправки текста в юникоде (без потери раскладки). Указывается, как и остальные модификаторы, перед символом или скобкой, например:

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

test_send_1=send(`~(Hello !"#${%}&'{(}-. Вася)`)
Код клавиши с ~ может быть отправлен через {~}, а чисто символ ~ - через ~{~}.
Последний раз редактировалось MVV Ср апр 03, 2013 14:39, всего редактировалось 1 раз.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MVV писал(а):Бета 364.
Вчерашняя версия (360) в CAB-е...
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Точно, блин. Исправил ссылку.

Сложно отлаживать функции отправки нажатий клавиш, во время отладки фокус всё время перехватывает среда разработки, и она же ловит клавиши.
Как раз из-за левого мусора в исходнике релизная версия и не собралась, а я в спешке не заметил этого.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

У меня всё нормально работает - ни одного нового цветочка пока не вылезло.
А с тильдой - просто песня!

Пробел может быть не стоит передавать после тильды как юникод? В таком виде он не срабатывает как переключатель в диалогах. Без тильды срабатывает как надо, разумеется.
Как бы кавычку передать? Может так {"}? Нашёл выход +', только он работает при английской раскладке.
Последний раз редактировалось sa Чт апр 04, 2013 09:41, всего редактировалось 2 раза.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Да оно-то несложно, но ведь другие клавиши тоже могут использоваться для схожих целей. И ты же не будешь смешивать пробелы-переключатели и символы юникода - пробелы надо вводить, когда фокус на чекбоксах, а символы - в поля ввода. Думаю, логично было бы каждый ввод в поле ввода обрамлять тильдой, а между ними наоборот тильд не делать, чтобы подчеркнуть, что это уже не ввод текста. Тем более, между ними еще будут табуляторы.

Бета 366.
Пробел не посылается через тильду.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Я зачастую всю строку нажатий обрамляю скобками и предваряю их тильдой. С табами, Enter и ESC, а теперь и пробелом внутри скобок всё работает.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

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

Сообщение sa »

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

Сообщение MVV »

Я бы всё равно рекомендовал разделять мух с котлетами:

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

test_hello_1=send(`^m~(Hello, мир){tab}~( Это я)%н~(Hello){tab}~(Привет)`)
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

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

Сообщение MVV »

Я имею в виду, что тильды необходимы только в полях ввода (ещё, быть может, при переходе к элементу по Alt+букве), между ними и на других элементах управления их быть не должно. Перешли к полю ввода - тильда и текст, закрыли тильду, переходим к следующему полю, и т.д.
Ответить