Autohotkey 右侧前缀超出范围的效果,正确的行为?

Autohotkey 右侧前缀超出范围的效果,正确的行为?

我遇到了一个问题,如下面这个小片段所示:

#IfWinActive ahk_class Notepad
^a:: MsgBox, Ctrl+A press in notepad
#IfWinActive

#IfWinActive ahk_class ConsoleWindowClass
>^a:: MsgBox, Ctrl+A pressed in CMD window
#IfWinActive 

我想

  • Ctrl+A(无论左或右 Ctrl)来触发记事本上的消息框;
  • 并且只有权Ctrl+A在 CMD 窗口上触发消息框。

但记事本上的实际行为是:只有左 Ctrl+A 可以触发消息框,右 Ctrl+A 会表现出原始的“全选”行为。怎么了?一个#IfWinActive上下文的>前缀怎么会影响另一个#IfWinActive上下文?

在 Windows 7 上尝试使用 Autohotkey 1.1.19.02 和 1.1.22.09,行为相同。

答案1

从未见过……也许是个怪癖。尝试明确的左/右定义。

#IfWinActive ahk_class Notepad
>^a:: 
<^a:: 
    MsgBox, Ctrl+A press in notepad
return
#IfWinActive

#IfWinActive ahk_class ConsoleWindowClass
>^a:: MsgBox, Ctrl+A pressed in CMD window
#IfWinActive 

相关内容