WinWait

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

WinWait , WinTitle, WinText, Timeout, ExcludeTitle, ExcludeText

参数

WinTitle, WinText, ExcludeTitle, ExcludeText

至少需要其中的一个. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示).

ExcludeTitleExcludeText 可用于根据标题或文本排除一个或多个窗口. 它们的规范类似于 WinTitleWinText, 除了 ExcludeTitle 不识别除窗口标题之外的任何条件.

窗口标题和文本是区分大小写的. 默认情况下, 不检测隐藏窗口, 而检测隐藏文本元素, 除非使用 DetectHiddenWindowsDetectHiddenText 进行更改. 默认情况下, 窗口标题必须以指定的 WinTitleExcludeTitle 开头才能匹配, 除非使用 SetTitleMatchMode 进行更改.

Timeout

如果为空或省略, 命令将无限期等待. 否则, 它等待不超过这个秒数的时间. 若要等待比秒更小的时间, 请指定一个浮点数, 例如, 0.25 等待最多 250 毫秒. 指定 0 等同于指定 0.5. 此参数可以是表达式.

ErrorLevel

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

备注

当匹配窗口出现后, 此命令将不再等待 Timeout 到期. 相反地, 它会立即设置 ErrorLevel 为 0, 更新上次找到的窗口并让脚本继续执行.

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

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

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

WinWaitActive, WinWaitClose, WinExist(), WinActive(), Process, SetTitleMatchMode, DetectHiddenWindows

示例

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

Run, notepad.exe
WinWait, Untitled - Notepad, , 3
if ErrorLevel
{
    MsgBox, WinWait timed out.
    return
}
else
    WinMinimize  ; 使用 WinWait 找到的窗口.