Autohotkey 发送热键自己的默认行为

Autohotkey 发送热键自己的默认行为,autohotkey,Autohotkey,如何从硬件行为在其自己的密钥定义中发送密钥默认值。我是说这个代码: vcerc = 0 +c:: vcerc := !vcerc Return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; kkey = 0 $k:: if vcerc { kkey := !kkey if kkey SendInput {k down} else SendInput {k up} } else { Send, K } Ret

如何从硬件行为在其自己的密钥定义中发送密钥默认值。我是说这个代码:

vcerc = 0

+c::
vcerc := !vcerc
Return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

kkey = 0

$k::
if vcerc {
    kkey := !kkey
    if kkey
        SendInput {k down}
    else
        SendInput {k up}
}
else {
    Send, K
}
Return
在Send的最后部分,K它发送单词K。我在一个多语言环境中,这意味着如果我切换到另一个,这个键仍然发送K,而不是发送第二语言的。
如何将此发送设置为默认设置?无论语言是什么,从硬件来看,我觉得有两件事不对劲:1你最初的kkey声明永远不会被击中,因为它会在热键和返回键后掉落。在顶部声明变量。2如果kkey为true,脚本将无限期地按住k按钮。这是预期的吗?3您只查找小写的k,但发送大写的k。这是预期的吗

无论如何,这个例子应该为您指出正确的方向

vcerc = 0
kkey = 0

+c::
vcerc := !vcerc
return

$k::
{
    if (vcerc) {
        kkey := !kkey
        if (kkey) {
            msgbox, k down ; SendInput {k down}
        } else {
            msgbox, k up ; SendInput {k up}
        }
    } else {
        Send, K
    }
}

当您按下该键时,该键在键历史记录中显示什么?没有脚本运行,我对你在这里寻找的东西有点困惑。你想根据bool切换k键发送的内容吗?@fischgeek是的,这是游戏中语音的切换,但事实并非如此。当我想输入单词时,当我点击K时,它不会发送正确的字符。多语言平台就像你说的,它不会无限期地抑制K。您可以测试它,但在游戏中它显示它持有K键。无论如何,这不是我问题的答案。当我使用Alt+Shift切换到第二语言时,是否会发送ن?它没有!它再次发送字符K。这是预料不到的。