WinWait

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

WinWait WinTitle, WinText, Timeout, ExcludeTitle, ExcludeText

参数

WinTitle, WinText, ExcludeTitle, ExcludeText

类型: 字符串, 整数对象

至少需要其中的一个. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示). 如果 DetectHiddenText 已经打开, 则检测隐藏文本元素. 标题或文本包含 ExcludeTitleExcludeText 的窗口将不被考虑.

Timeout

类型: 整数浮点数

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

返回值

类型: 整数

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

备注

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

如果 WinTitle 指定了一个无效的 HWND(作为一个整数或通过一个对象的 HWND 属性), t该函数立即返回, 而不等待 Timeout 超时. 等待另一个具有相同 HWND 值的窗口创建是没有意义的, 因为两个窗口之间可能没有关系.

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

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

WinWaitActive 不同, 不能使用上次找到的窗口. 所以, 至少有一个窗口参数(WinTitle, WinText, ExcludeTitle, ExcludeText) 必须是非空的.

窗口标题和文本是区分大小写的. 除非 DetectHiddenWindows 被打开, 否则不会检测隐藏窗口, even if WinTitle is a HWND or object.

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

示例

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

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