WinWaitClose


等待匹配指定条件的窗口被关闭。

WinWaitClose [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]

参数

WinTitle 目标窗口的标题或标题中的部分文字(匹配模式由 SetTitleMatchMode 决定)。如果省略其它 3 个窗口参数,默认目标是 上一次匹配窗口 。要用窗口的 class 名进行匹配,使用 ahk_class 精确 class 名(Window Spy 中可以显示 class 名)。要用窗口的 进程标识符(PID)进行匹配,使用 ahk_pid %PID变量% 。要用 窗口组 ,使用 ahk_group 组名 。要用窗口的 唯一 ID 进行匹配,使用 ahk_id %ID变量% 。要减小检测范围,使用 多重条件 ,例如:My File.txt ahk_class Notepad
WinText 如果使用这个参数,则它应该是目标窗口中某个文本元素的子字符串(在 Window Spy 中会显示出窗口中的文本元素)。隐藏文本只有在 DetectHiddenText 设置为 ON 的时候才能检测到。
Seconds 超时时间。超时后将不再等待并且设置 ErrorLevel/错误等级 为 1 。留空表示无限等待。指定 0 等同于 0.5 。这个参数可以一个 表达式
ExcludeTitle 标题中包含该参数指定的文字的窗口将被除外。
ExcludeText 文本元素中包含该参数指定的文字的窗口将被除外。

ErrorLevel

超时以后 ErrorLevel/错误等级 为 1 ,否则为 0 。

注意

没有匹配窗口的时候,命令会立即设置 ErrorLevel/错误等级 为 0 ,然后让脚本继续执行,而不必再等待 Seconds 参数中指定的时间。

当该命令处于等待状态的时候,仍然可以通过 快捷键自定义菜单 ,或 定时器 来启动新的 线程

如果其它的 线程 在该命令等待的时候改变了参数中所使用到的变量的值,该命令会无视这些改变 —— 它仍然会使用这些变量在开始等待的时候的值。

窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口,必须打开 DetectHiddenWindows

相关命令

WinClose, WinWait, WinWaitActive, IfWinExist, IfWinActive, Process, SetTitleMatchMode, DetectHiddenWindows

示例

Run, notepad.exe
WinWait, Untitled - Notepad
WinWaitClose  ; 等待 WinWait 找到的窗口被关闭。
MsgBox, Notepad is now closed.