Waits until a window's status bar contains the specified string.
StatusBarWait [, BarText, Seconds, Part#, WinTitle, WinText, Interval, ExcludeTitle, ExcludeText] |
Parameters
BarText | The text or partial text for the which the command will wait to appear. Default is blank (empty), which means to wait for the status bar to become blank. The text is case sensitive and the matching behavior is determined by SetTitleMatchMode, similar to WinTitle below. |
Seconds | The number of seconds (can contain a decimal point or be an expression) to wait before timing out, in which case ErrorLevel will be set to 1. Default is blank, which means wait indefinitely. Specifying 0 is the same as specifying 0.5. |
Part# | Which part number of the bar to retrieve, which can be an expression. Default 1, which is usually the part that contains the text of interest. |
WinTitle | The title or partial title of the target window (the matching behavior is determined by SetTitleMatchMode). If this and the other 3 window parameters are blank or omitted, the Last Found Window will be used. If this is the letter A and the other 3 window parameters are blank or omitted, the active window will be used. To use a window class, specify ahk_class ExactClassName (shown by Window Spy). To use a process identifier (PID), specify ahk_pid %VarContainingPID%. To use a window group, specify ahk_group GroupName. To use a window's unique ID number, specify ahk_id %VarContainingID%. The search can be narrowed by specifying multiple criteria. For example: My File.txt ahk_class Notepad |
WinText | If present, this parameter must be a substring from a single text element of the target window (as revealed by the included Window Spy utility). Hidden text elements are detected if DetectHiddenText is ON. |
Interval | How often the status bar should be checked while the command is waiting (in milliseconds), which can be an expression. Default is 50. |
ExcludeTitle | Windows whose titles include this value will not be considered. |
ExcludeText | Windows whose text include this value will not be considered. |
ErrorLevel
ErrorLevel is set to 1 if the command times out before a match could be found in the status bar. It is set to 2 if the status bar could not be accessed. It is set to 0 if a match is found.
Remarks
StatusBarWait attempts to read the first standard status bar on a window (class msctls_statusbar32). Some programs use their own status bars or special versions of the MS common control. Such bars are not supported.
Rather than using StatusBarGetText in a loop, it is usually more efficient to use StatusBarWait because it contains optimizations that avoid the overhead that repeated calls to StatusBarGetText would incur.
StatusBarWait determines its target window before it begins waiting for a match. If that target window is closed, the command will stop waiting even if there is another window matching the specified WinTitle and WinText.
While the command is in a waiting state, new threads can be launched via hotkey, custom menu item, or timer.
Window titles and text are always case sensitive. Hidden windows are not detected unless DetectHiddenWindows has been turned on.
Related
StatusBarGetText, WinGetTitle, WinGetText, ControlGetText
Example
IfWinExist, Search Results ; Sets the Last Found window to simplify the below. { WinActivate Send, {tab 2}!o*.txt{enter} Sleep, 400 ; Give the status bar time to change to "Searching". StatusBarWait, found, 30 if ErrorLevel = 0 MsgBox, The search successfully completed. else MsgBox, The command timed out or there was a problem. }