# WinWait

等待直到指定的窗口存在.

    WinWait WinTitle, WinText, Timeout, ExcludeTitle, ExcludeText

## 参数

WinTitle

  类型: 字符串, 整数或对象

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

  WinTitle 只有在 WinText, ExcludeTitle 或 ExcludeText 都存在时, 才能为空.

WinText

  类型: 字符串

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

Timeout

  类型: 整数或浮点数

  超时并返回 0 前等待的秒数. 留空以允许函数无限期等待.

ExcludeTitle

  类型: 字符串

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

ExcludeText

  类型: 字符串

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

## 返回值

类型: 整数

如果发现了匹配的窗口, 则该函数返回该窗口的 HWND(唯一 ID), 否则函数超时, 返回 0.

## 备注

如果匹配窗口存在, 函数不会等待到 Timeout 过期. 相反, 它会更新上次找到的窗口和返回, 并让脚本继续执行.

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

如果另一个线程更改了用于该函数参数的任何变量的内容, 该函数将不会看到更改 -- 它将继续使用在函数首次开始等待时最初出现在变量中的标题和文本.

窗口标题和文本是区分大小写的. 除非 DetectHiddenWindows 被打开, 否则不会检测隐藏窗口.

## 相关

WinWaitActive, WinWaitClose, WinExist, WinActive, ProcessWait, SetTitleMatchMode, DetectHiddenWindows

## 示例

打开记事本, 最多等待 3 秒, 直到它存在. 如果 WinWait 超时, 会显示一条错误信息, 否则记事本将被最小化.

    Run "notepad.exe"
    if WinWait("Untitled - Notepad", , 3)
        WinMinimize  ; 使用由 WinWait 找到的窗口.
    else
        MsgBox "WinWait timed out."

dftg