在同一个脚本中使用双冒号 :: 和热键命令会破坏一个

Using Double Colon :: and the Hotkey command in the same script breaks one

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

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

Alone:
MsgBox You pressed F2.
return

双冒号和 "Hotkey" 命令之间是否存在交互作用?有没有解决的办法?

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

我是 运行 Autohotkey v1.1.25.02 Windows Enterprise 1909(OS Build 18363.720)

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

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

这是您要查找的语法:

#SingleInstance, Force

F1::
    MsgBox, You pressed F1
    Hotkey, F2, Alone
return

Alone:
    MsgBox, You pressed F2.
return