如何查找在AutoHotKey中打开的特定程序的窗口数?

如何查找在AutoHotKey中打开的特定程序的窗口数?,autohotkey,Autohotkey,我是AHK的新手,希望找到某个程序在任何时候打开的窗口数,并将其存储在变量中 我有一个脚本,当我按下caps lock键时,它会打开一个Opera窗口,但我一次只想打开其中三个窗口,因此当有三个以上的Opera窗口打开,而我按下caps lock键时,它什么也不做 我还希望caps lock按钮永远不要大写文本(换句话说,caps lock状态始终处于关闭状态) 如何执行此操作?您可以使用WinGet和Count操作(请参阅)来获取与特定筛选器匹配的窗口数 当然,你需要找到合适的过滤器。您可以使

我是AHK的新手,希望找到某个程序在任何时候打开的窗口数,并将其存储在变量中

我有一个脚本,当我按下caps lock键时,它会打开一个Opera窗口,但我一次只想打开其中三个窗口,因此当有三个以上的Opera窗口打开,而我按下caps lock键时,它什么也不做

我还希望caps lock按钮永远不要大写文本(换句话说,caps lock状态始终处于关闭状态)


如何执行此操作?

您可以使用
WinGet
Count
操作(请参阅)来获取与特定筛选器匹配的窗口数

当然,你需要找到合适的过滤器。您可以使用自动热键附带的Window Spy实用程序

在本例中,我已经这样做了:您将看到Opera窗口的窗口类(
ahk_class
)是
Chrome\u WidgetWin\u 1
。然而,对于Chrome、Chrome等也是如此,因此我们还必须过滤
opera.EXE的程序EXE文件名(
ahk_EXE
)。(我们不只是通过
ahk_exe
进行筛选的原因是我们不想包括“有可用更新”框或其他非主窗口Opera可能已打开的内容。)

最终结果是:

WinGet cnt, Count, ahk_exe opera.exe ahk_class Chrome_WidgetWin_1
MsgBox There are %cnt% Opera windows open

要使caps lock state始终处于关闭状态,请参见。@user3419297我假设这只会在我按下caps键后设置caps lock state始终处于关闭状态?在AHk中,只有
SetCapsLockState,AlwaysOff
而上面没有热键可以吗?是的,这是一个常规设置,仅禁用常规的大写锁定功能。它独立于您在
Caps
上定义的热键。此命令必须放在(第一个热键、热字符串或返回之前的脚本顶部)。