主な履歴

主な履歴

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は のコードでHenkanvkF2sc070は のコードです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 ()

そして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ディレクティブを追加する必要があります。これを行うと、キー履歴に移動して、キーボード フックが有効になっていることを確認できます。

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

これを書いた後、コメントがさらに増え、あなたがすでにこのことをすべて理解していることがわかりました。他の誰かが偶然このことに気付いた場合に備えて、とにかく投稿します。

関連情報