# WinWait

等待，直到匹配指定条件的窗口出现。

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

#### 参数

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

#### ErrorLevel/错误等级

超时的话 ErrorLevel/错误等级 为 1 ，否则为 0 。

#### 注意

匹配的窗口出现后，命令会立即设置 ErrorLevel/错误等级 为 0 ，更新 上一次匹配窗口 ，然后让脚本继续执行，而不必再等待 Seconds 参数中指定的时间。

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

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

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

#### 相关命令

WinWaitActive, WinWaitClose, IfWinExist, IfWinActive, Process, SetTitleMatchMode, DetectHiddenWindows

#### 示例

    Run, notepad.exe
    WinWait, Untitled - Notepad, , 3
    if ErrorLevel
    {
        MsgBox, WinWait timed out.
        return
    }
    else
        WinMinimize  ; 最小化上面找到窗口。