如何绑定热键并保留其默认行为

时间:2015-04-12 21:07:10

标签: autohotkey

language = de
~Alt & Shift::
~Shift & Alt::
    if (language == "de") {
        language = en
    }
    else {
        language = de
    }
    msgbox % language
Return

这是我正在处理的代码,将工作绑定到Alt + Shift。但我想保留Alt + Shift的默认行为,这个代码运行后似乎被禁用了 任何想法?

1 个答案:

答案 0 :(得分:1)

使用~Alt & ~Shift::代替~Alt & Shift::

波浪号~前缀使热键保持其原始功能。至于明白,

~Alt & Shift::msgbox

可以翻译成以下内容:

~Alt::    ; Alt enables the detection of a shift press
hotkey, Shift, shift, ON    ; OVERRIDES the normal shift behavior, not keeping it (~Shift)
hotkey, Shift up, shiftUp, ON
return

shift:
msgBox
return

shiftUp:
hotkey, Shift, shift, OFF
hotkey, Shift up, shiftUp, OFF
return

Alt是一个热键,Shift也是一个,在Alt压力下被激活。但是,非常Shift热键会覆盖任何正常的移位行为。

因此,alt & shift实际上是两个不同的热键组合为一个。每个都需要以自己的选项为前缀。


我的解决方案适用于另一个同意的AutoHotkey脚本。但似乎没有Windows内置的热键shift+alt又名alt+shift。即使ahk热键触发器看起来像那样

~Alt & ~Shift::

,这将STILL覆盖通常的行为,即Window的语言切换机制。我不知道背后的原因,也许其他人呢?我只能想到一个(相当简单的)解决方法:

~Alt & ~Shift::
send {alt down}{shift}{alt up}
; (your other actions)
return

在这种情况下,您甚至可能希望删除~以防止混淆。