我遇到了一个问题,如下面这个小片段所示:
#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