【问题标题】:Switching between multiple sets of remaps in autohotkey在 autohotkey 中的多组重映射之间切换
【发布时间】:2013-05-28 11:23:54
【问题描述】:

基本上我想做的是通过使用不同的热键在不同的键盘布局之间切换。

所以当我按下

^+!F4::

这些键被重新映射

d::Space
f::j
j::k
k::l

然后这样做

^+!F8::

将重新映射

a::s
s::d
d::f
f::Space
j::Left
k::Numpad4
l::Numpad5
;::Numpad6

最后

^+!F7::

将所有内容恢复为默认值

似乎我尝试的任何脚本都无法编译复制热键。这可以通过自动热键实现吗?

【问题讨论】:

  • 你在使用 AutoHotKey_L 吗?

标签: key autohotkey hotkeys remap


【解决方案1】:

您可以使用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 jk) 被按下。 RemapKey 通过访问 A_ThisHotkey 获取最新的热键,找出它映射到的内容并发送该键。 #UseHook 是必不可少的,以防止 Send 命令触发另一个热键(在我们的例子中,按 **F 将触发 **JJ 将然后触发 K 等等)。 请注意,如果 仅使用 AutoHotkey_L,则使用关联对象。如果您使用其他版本,则必须以另一种方式定义地图(例如 keyMapd:="SPACE" 之类的伪数组)。

【讨论】:

    【解决方案2】:

    这是另一种方式,也需要 AutoHotKey_L。

    #SingleInstance Force
    Flag:=0
    Return
    
    ^+!F7::
    Flag:=0
    TrayTip, AutoHotKey, Keyboard setting Default, 1
    Return
    
    ^+!F4::
    Flag:=1
    TrayTip, AutoHotKey, Keyboard setting A, 1
    Return
    
    ^+!F8::
    Flag:=2
    TrayTip, AutoHotKey, Keyboard setting B, 1
    Return
    
    #If (Flag=1)
    x::SoundBeep, 500, 100
    d::Space
    f::j
    j::k
    k::l
    #If
    
    #If (Flag=2)
    x::SoundBeep, 2000, 100
    a::s
    s::d
    d::f
    f::Space
    j::Left
    k::Numpad4
    l::Numpad5
    ;::Numpad6
    #If
    

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多