Тема: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251
Приветствую, уважаемые коллеги.
Ситуация:
Есть приложение, в котором не работает русская клавиатура (текст в русской раскладке не вводится, в связи подменой таблицы символов в приложении), но работает вручную введенные ASCII значения из таблицы №4 данного документа: http://ascii.org.ru/ascii.pdf
Сделал для всех буквенных клавиш переназначение. Ниже привожу пример на примере букв "Ы" и "ы".
+s::
SetKeyDelay 25, 25, Play
SendPlay {ASC 0219} ;
return
s::
SetKeyDelay 25, 25, Play
SendPlay {ASC 0251} ;
return
Заранее прошу прощения за возможную безграмотность и/или не правильную реализацию, только начал изучать AHK.
Прежде чем продолжить, хочу сказать что:
Использую Win7 32 bit - это важно.
Версия Autohotkey 1.1.11.01 (последняя).
Раскладка по умолчанию EN.
В системе кодировка Win 1251.
У меня данный скрипт работает, только если включена английская раскладка клавиатуры (EN).
У товарища при тех же условиях, на Win7 64 bit не работает.
Все попытки заставить скрипт работать на русской раскладке клавиатуры и Win7 64 bit провалились.
Ни сохранение в UTF-8, ни использование через скан-код (sc) не помогли, в любой раскладке и экспериментах отрабатываются только латинские символы. Советы из статьи http://www.script-coding.com/AutoHotkey … an_3b.html тоже не помогли. Т.е. даже элементарная замена:
Буква Ы::Буква Г
Буква Г::Буква Ывозвращали в русской раскладке "s" и "u" (Слово буква в данном примере для наглядности).
Буду очень признателен если поможете решить задачу:
Только при включенной русской раскладке (RU) нажатие клавиши вызывало "ASC xxxx", при этом скрипт не отрабатывался при английской раскладке, возможно существует условие проверки текущей раскладки. Ну и чтобы одинаково хорошо работало в Win 32 и 64.
Возможно нужно подкорректировать мой код или же Вы предложите более эстетичное решение.
В любом случае буду признателен за работающий пример на паре символах.
Заранее благодарю и надеюсь на Вашу помощь.

