Como obter o nome da chave com o AutoHotkey

1

Eu quero alterar os idiomas de entrada usando Henkan e KanaHira keys, estes são implementados teclado japonês.

    vk1Csc079::
      PostMessage, 0x50, 0, 0x41E041E,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
    Return

    vkF2sc070::
      PostMessage, 0x50, 0, 0x4110411,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
    Return

vk1Csc079 é o código para Henkan e vkF2sc070 é para KanaHira . Com esse código, eu poderia mudar o teclado para o japonês, mas não consegui alterar o tailandês para o japonês.

Percebi que, em tailandês, há outro mapeamento de chaves, portanto, o KanaHira não existe mais depois de alternar.

Por isso, quero saber qual código de chave devo escrever para a função para habilitá-lo no teclado tailandês. Alguém sabe sobre isso?

Histórias principais

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.
    
por ironsand 16.05.2016 / 14:27

1 resposta

1

Existem certas funções que forçarão a instalação de um gancho de teclado e outras que não. Seu script não tem nenhum que imponha o gancho do teclado, portanto ele não está funcionando globalmente / disponível

Observe o topo do seu arquivo de log ... gancho de teclado = não ....

Window: C:\Users\ironsand\Desktop\thai_keyboard.ahk - AutoHotkey v1.1.23.05
Keybd hook: no
Mouse hook: no
Enabled Timers: 0 of 0 ()

E a segunda nota ...

NOTE: Only the script's own keyboard events are shown
(not the user's), because the keyboard hook isn't installed.

Para forçar um gancho de teclado e ver pressionamentos de tecla para todos os pressionamentos de tecla, você deve poder adicionar a diretiva #InstallKeybdHook ou #UseHook On na parte superior do seu script. Depois de fazer isso, você deve poder acessar o histórico de chaves e ver se o gancho do teclado está ativado.

Quando o gancho do teclado estiver ativado e você tiver a janela do histórico de chaves, pressione a tecla de que você precisa para obter o histórico chave. Ele não aparecerá na janela até que você pressione F5 , conforme observado por @harrymc.

Depois de escrever isso, vi que havia mais comentários e que você já percebeu tudo isso. Vou postar qualquer forma para quem mais puder acontecer.

    
por 22.05.2016 / 06:36