WinWaitActive / WinWaitNotActive

AutoHotKey

WinWaitActive / WinWaitNotActive

等到指定的窗口处于活动或不活动状态.

WinWaitActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]
WinWaitNotActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]

参数

WinTitle

窗口标题或识别目标窗口的其他条件.请参阅 WinTitle.

WinText

如果使用此参数, 那么它必须是目标窗口中单个文本元素的子字符串 (和内置的 Window Spy 工具显示的一样). 当 DetectHiddenText 的设置为 ON 时, 那么会检测到隐藏文本元素.

超时前等待的秒数. 超时后设置 ErrorLevel 为 1. 留空表示无限期等待. 指定 0 等同于指定 0.5. 此参数可以为 表达式.

ExcludeTitle

标题中含有此参数值的窗口将被排除.

ExcludeText

文本中含有此参数值的窗口将被排除.

ErrorLevel

命令超时后 ErrorLevel 被置为 1, 否则为 0.

备注

如果匹配窗口符合了命令的要求, 那么此命令不再等待 Seconds 到期. 相反地, 它会立即设置 ErrorLevel 为 0 并让脚本继续执行.

当 WinWaitActive 和 WinWaitNotActive 执行时如果符合条件的窗口是活动的, 那么它们都会更新 上次找到的窗口. 此外, 如果在 WinWaitActive 超时前符合条件的窗口变成活动窗口, 那么它会更新上次找到的窗口.

当此命令处于等待状态时, 可以通过 热键, 自定义菜单项计时器 启动新的 线程.

如果其他 线程 改变了在此命令参数中使用的任何变量内容, 此命令会无视这些变化, 它会继续使用在开始等待时变量中原始的标题和文本.

窗口标题和文本是区分大小写的. 只有在打开 DetectHiddenWindows 设置时,才能检测到隐藏窗口.

相关

WinWait, WinWaitClose, IfWinExist, IfWinActive, SetTitleMatchMode, DetectHiddenWindows

示例

Run, notepad.exe
WinWaitActive, Untitled - Notepad, , 2
if ErrorLevel
{
    MsgBox, WinWait timed out.
    return
}
else
    WinMinimize  ; 最小化 WinWaitActive 找到的窗口.