您可以使用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,Ĵ或ķ)被按下。 RemapKey
通过访问A_ThisHotkey
获取最新热键,找出它映射到的内容并发送该密钥。该#UseHook
是为了防止Send
命令触发另一个热键必需(在我们的情况下,按下**˚F将触发**则J,Ĵ将触发ķ等)。 请注意,如果使用关联对象AutoHotkey_L只有。如果您使用的是其他版本,则必须以另一种方式定义您的地图(例如,像keyMapd:="SPACE"
这样的伪数组)。
来源
2013-06-01 22:40:18
MCL
您使用的是AutoHotKey_L吗? – MCL