Прошу прощения за, наверное, детский вопросы, но можно про тонкости работы с русским? Такой скрипт:
a::
send z
return
срабатывает независимо от раскладки клавиатуры - и на 'a', и на 'ф', но в консольных окнах ("новая" консоль win 10) выводит 'z' в английской раскладке и 'я' в русской, а в гуевых - всегда 'z' независимо от раскладки. sendraw и sendinput - то же самое, sendplay - вообще не работает. Можно ли сделать, чтобы и в гуе работало так же, как в консоли - с автоматической трансляцией в текущую раскладку? Или, хотя бы, чтобы работало одинаково и в консоли, и в гуе? Но тогда, получается, мэппинг рус-лат придется поддерживать ручками в скрипте и ностальгировать о koi-8r? 1.1.30.01
разное поведение в консоли и гуе
-
- Posts: 137
- Joined: 01 Jul 2017, 03:04
Re: разное поведение в консоли и гуе
Так нет?
Code: Select all
send {z}
Re: разное поведение в консоли и гуе
Так стало лучше - буквы в гуе начали транслироваться в соответствии с раскладкой клавиатуры так же, как и в консоли, но только буквы (z-я), для знаков препинания (.-ю) все осталось по-старому: в гуе send {.} выводит точку независимо от раскладки, а в консоли - точку в английской раскладке и ю в русской.
-
- Posts: 137
- Joined: 01 Jul 2017, 03:04
Re: разное поведение в консоли и гуе
Ну это наверное только кодами победить.
Code: Select all
send {vkBE}
-
- Posts: 137
- Joined: 01 Jul 2017, 03:04
Re: разное поведение в консоли и гуе
Если нужен символ исходя например из раскладки активного окна.
Code: Select all
sym = .
chr := GetCharOfVK(getkeyvk(sym))
SendInput {%chr%}
GetCharOfVK(vk) {
InputLocaleID := (DllCall("GetKeyboardLayout", "Int"
, DllCall("GetWindowThreadProcessId", "Ptr", WinExist("A"), "Int", "0")))
VarSetCapacity(Buffer, 2)
DllCall("ToUnicodeEx"
, UInt, vk, UInt, 0
, UInt, &DummyKeyState, Str, Buffer
, Int, 2, UInt, 0, UInt, InputLocaleID)
Return Buffer
}
Re: разное поведение в консоли и гуе
В таком виде оно игнорирует регистр: для '>' и '.' результат одинаков, но если выставлять в третьем аргументе ToUnicodeEx битики для шифтов, кажется, получается то, что надо. Спасибо.
-
- Posts: 137
- Joined: 01 Jul 2017, 03:04
Re: разное поведение в консоли и гуе
KeyState я специально удалил, ведь разговор про команду send.
Who is online
Users browsing this forum: No registered users and 29 guests