![Autohotkey 右侧前缀超出范围的效果,正确的行为?](https://linux22.com/image/1482966/Autohotkey%20%E5%8F%B3%E4%BE%A7%E5%89%8D%E7%BC%80%E8%B6%85%E5%87%BA%E8%8C%83%E5%9B%B4%E7%9A%84%E6%95%88%E6%9E%9C%EF%BC%8C%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%A1%8C%E4%B8%BA%EF%BC%9F.png)
我遇到了一个问题,如下面这个小片段所示:
#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