it-swarm-ja.com

AutoHotkeyでキー名を取得する方法

HenkanキーとKanaHiraキーを使用して入力言語を切り替えたいのですが、これらは日本語キーボードで実装されています。

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

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

vk1Csc079Henkanのコードであり、vkF2sc070KanaHiraのコードです。このコードを使用して、キーボードの日本語をタイ語に変更することはできましたが、タイ語を日本語に逆に変更することはできませんでした。

タイ語には別のキーマッピングがあるため、切り替え後に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
ironsand

キーボードフックを強制的にインストールする機能と、インストールしない機能があります。スクリプトにはキーボードフックを義務付けるものがないため、グローバルに実行/利用可能ではありません

ログファイルの先頭に注意してください...キーボードフック=いいえ..。

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

そして2番目のメモ...

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

キーボードフックを強制し、すべてのキー押下のキーストロークを確認するには、スクリプトの先頭に#InstallKeybdHookまたは#UseHook Onディレクティブを追加できる必要があります。これを行うと、キー履歴に移動して、キーボードフックが有効になっていることを確認できるはずです。

キーボードフックが有効になり、キー履歴ウィンドウが表示されたら、キー履歴を取得するために必要なキーを押します。ただし、@ harrymcが示すように、F5を押すまで、ウィンドウには表示されません。

これを書いた後、私はより多くのコメントがあり、あなたはすでにこれのすべてを理解しているのを見ました。私は他の誰かが一緒に起こるかもしれない人のためにどんな方法でも投稿するつもりです。

1
JJohnston2