Наконец я получил подсказку об этой проблеме на форуме Autoit. Как я могу найти код ключа не английских символов? , там я наткнулся на вызов функции DllCall
.
Итактеперь у меня есть следующий вызов функции
DllCall('user32.dll', 'int', 'keybd_event', 'int',$hChar, 'int', 0, 'int', 0, 'ptr', 0)
Я могу заменить значение $ hChar требуемым кодом ключа.Например, если я хочу напечатать स с помощью Inscript Keyboard и языка деванагари, я должен отправить 0x4D, который является шестнадцатеричным кодом для клавиши клавиатуры m.
Чтобы преобразовать символ m в код клавиши 0x4D, нам нужно написать преобразование длявсе клавиши клавиатуры.
Мы можем получить श с тем же кодом, если мы отправим {SHIFTDOWN} перед вызовом этой функции.
$hChar = "0x4D"
Send("{SHIFTDOWN}")
DllCall('user32.dll', 'int', 'keybd_event', 'int', $hChar, 'int', 0, 'int', 0, 'ptr', 0)
Send("{SHIFTUP}")
(Чтобы использовать DllCall
, мы должны включить WinAPI.au3 в наш Autoitскрипт.)