Hotkeyコマンドを使用して、ホットキーを動的に変更できます。キーを再マップする方法の小さな例を次に示します。
#Persistent
#UseHook
keyMap := {d: "SPACE", f: "j", j: "k", k: "l"}
; Associative objects are AHK_L only!
; for a pseudo array, do something like this:
; keyMapd := "SPACE"
; keymapf := "j"
; ...
Exit
F4::
for orig, new in keyMap
{
Hotkey, %orig%, RemapKey
}
return
RemapKey:
newKey := keyMap[A_ThisHotkey]
; to retrieve from a pseudo array, do this:
; newKey := keyMap%A_ThisHotkey%
Send, {%newKey%}
return
keyMap元のキーを新しいターゲットにマッピングする連想配列です。を押すF4と、 で定義されたすべてのキーが取得され、keyMapと呼ばれるサブルーチンが割り当てられますRemapKey。したがって、keyMap( d、f、jまたはk ) のいずれかのキーが押されたときに呼び出されます。RemapKeyにアクセスして最新のホットキーを取得しA_ThisHotkey、マッピング先を見つけてそのキーを送信します。これは、コマンドが別のホットキーをトリガー#UseHookするのを防ぐために不可欠です(この場合、 **F を押すと **J がトリガーされ、JはKなどをトリガーします)。AutoHotkey_L のみの場合の連想オブジェクトの使用に注意してください。Send. 別のバージョンを使用している場合は、マップを別の方法で定義する必要があります (たとえば、 のような疑似配列keyMapd:="SPACE")。