在同一个脚本中使用Double Colon::和热键命令会打断其中一个



我在脚本中发生了最奇怪的行为。在下面的MWE中,只要有F1行,Hotkey F2声明就不起作用。如果我注释掉第2行,那么F2热键工作得很好。

#SingleInstance, Force
F1::MsgBox You pressed F1
Hotkey F2, Alone
return
Alone:
MsgBox You pressed F2.
return

双冒号表示法和"热键"命令之间是否有交互作用导致了这种情况?有办法绕过这个吗?

当然,这是一个更大的脚本的一部分,其中定义了几个不同的热键。代码中的大多数热键都使用双冒号表示法,但我认为我必须对动态键(比如通过ini文件定义的键(使用热键命令。这段代码是带有静态热键(使用双冒号表示法(的较大代码集的一部分,我无法更改这部分代码。

我在Windows Enterprise 1909(OS Build 18363.720(上运行Auto热键v1.12.02

注意:我注意到,如果我把双冒号声明放在Hotkey命令之后(即重新排序的第2行和第3行(,它似乎可以工作。我不知道这是否是一种选择。原始脚本中有数百行代码。我仍然想知道是什么导致了这种行为。

您正在创建一个单行热键F1
代码执行不会继续到下面的行。

以下是您要查找的语法:

#SingleInstance, Force
F1::
MsgBox, You pressed F1
Hotkey, F2, Alone
return
Alone:
MsgBox, You pressed F2.
return

最新更新