AlwaysOnTop 无法使用 AutoHotKey 中记录的语法

AlwaysOnTop not working with documented syntax in AutoHotKey

我发现 AutoHotKey 中的 AlwaysOnTop 函数有些不一致。以下面的脚本为例:

#+a::
{
    WinSet , AlwaysOnTop , , A
    return
}

#+b::
{
    WinSet , AlwaysOnTop , Toggle
    return
}

第一个选项基于我使用多年的脚本,该脚本是从其他来源拼凑而成的。该版本可以在当前活动的任何内容上切换 AlwaysOnTop 设置 window.

第二个选项是 current documentation 所说的应该如何完成。当我尝试触发 AlwaysOnTop 设置时,这没有任何作用。

不仅仅是文档错误(至少不完全错误),因为该语法似乎适用于我刚刚编写的另一个脚本。在这个新脚本中,我总是希望它只激活 AlwaysOnTop 模式,从不切换,所以我使用 WinSet , AlwaysOnTop , On 并且它工作正常。

离开 on/off/toggle 值也不起作用(尽管它应该默认切换),使用 -1(最新版本 AHK 中的新选项)也不起作用。它不会向 运行 抛出任何错误,但是如果我使用逗号,它确实会说它遇到了语法错误。

知道为什么记录的语法不起作用吗?这是 AHK 中的实际故障,还是我只是误解了它在这种情况下的用法?我什至不知道为什么我的原始版本有效,因为我找不到任何地方记录的语法。

文档没有说不能用第一种方式完成。它说如果你按照第一种方式进行默认切换。并且在WinSet的顶部还有一个关于WinTitle的link,它描述了A的作用(取主动的window)。

如果误导您认为 WinTitle 是可选的,那么 WinTitle 仅在您想使用 Last Found Window 时才可选。

例如你可以这样做:

IfWinActive, %WinTitle%
    WinSet, AlwaysOnTop ; Toggles AlwaysOnTop for the previously checked window.