
Я хочу переключать языки ввода с помощью клавиш Henkan
и KanaHira
, они реализованы на японской клавиатуре.
vk1Csc079::
PostMessage, 0x50, 0, 0x41E041E,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
Return
vkF2sc070::
PostMessage, 0x50, 0, 0x4110411,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
Return
vk1Csc079
это код для Henkan
и vkF2sc070
это для KanaHira
. С этим кодом я мог бы изменить японскую раскладку клавиатуры на тайскую, но я не мог бы изменить тайскую раскладку на японскую наоборот.
Я заметил, что поскольку в тайском языке есть другое сопоставление клавиш, то KanaHira
после переключения оно больше не существует.
Поэтому я хочу узнать, какой код клавиши мне нужно написать для функции, чтобы включить ее на тайской клавиатуре. Кто-нибудь знает об этом?
Ключевые истории
Window: C:\Users\ironsand\Desktop\thai_keyboard.ahk - AutoHotkey v1.1.23.05
Keybd hook: no
Mouse hook: no
Enabled Timers: 0 of 0 ()
Interrupted threads: 0
Paused threads: 0 of 0 (0 layers)
Modifiers (GetKeyState() now) =
Modifiers (Hook's Logical) =
Modifiers (Hook's Physical) =
Prefix key is down: no
NOTE: Only the script's own keyboard events are shown
(not the user's), because the keyboard hook isn't installed.
NOTE: To disable the key history shown below, add the line "#KeyHistory 0" anywhere in the script. The same method can be used to change the size of the history buffer. For example: #KeyHistory 100 (Default is 40, Max is 500)
The oldest are listed first. VK=Virtual Key, SC=Scan Code, Elapsed=Seconds since the previous event. Types: h=Hook Hotkey, s=Suppressed (blocked), i=Ignored because it was generated by an AHK script, a=Artificial, #=Disabled via #IfWinActive/Exist, U=Unicode character (SendInput).
VK SC Type Up/Dn Elapsed Key Window
-------------------------------------------------------------------------------------------------------------
Press [F5] to refresh.
решение1
Есть определенные функции, которые заставят установить хук клавиатуры, а есть и такие, которые этого не сделают. Ваш скрипт не имеет ничего, что предписывает хук клавиатуры, поэтому он не запущен/недоступен глобально
Обратите внимание на верхнюю часть файла журнала... хук клавиатуры = нет....
Window: C:\Users\ironsand\Desktop\thai_keyboard.ahk - AutoHotkey v1.1.23.05
Keybd hook: no
Mouse hook: no
Enabled Timers: 0 of 0 ()
И вторая заметка...
NOTE: Only the script's own keyboard events are shown
(not the user's), because the keyboard hook isn't installed.
Чтобы принудительно включить хук клавиатуры и увидеть нажатия клавиш для всех нажатий клавиш, вы должны иметь возможность добавить директиву #InstallKeybdHook
or #UseHook On
в верхней части вашего скрипта. После этого вы должны иметь возможность перейти к истории клавиш и увидеть, что хук клавиатуры включен.
После включения хука клавиатуры и появления окна истории клавиш нажмите клавишу, для которой вам нужно получить историю клавиш. Однако она не появится в окне, пока вы не нажмете F5
, как заметил @harrymc.
После того, как я это написал, я увидел, что комментариев стало больше, и что вы уже во всем этом разобрались. Я собираюсь опубликовать любым способом для тех, кто еще может оказаться рядом.