WinExist()

Checks if the specified window exists and returns the unique ID (HWND) of the first matching window.

UniqueID := WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText)

Parameters

WinTitle, WinText, ExcludeTitle, ExcludeText

If each of these is blank or omitted, the Last Found Window will be used. Otherwise, specify for WinTitle a window title or other criteria to identify the target window and/or for WinText a substring from a single text element of the target window (as revealed by the included Window Spy utility).

ExcludeTitle and ExcludeText can be used to exclude one or more windows by their title or text. Their specification is similar to WinTitle and WinText, except that ExcludeTitle does not recognize any criteria other than the window title.

Window titles and text are case-sensitive. By default, hidden windows are not detected and hidden text elements are detected, unless changed with DetectHiddenWindows and DetectHiddenText. By default, a window title must start with the specified WinTitle or ExcludeTitle to be a match, unless changed with SetTitleMatchMode.

Return Value

This function returns the unique ID (HWND) (as hexadecimal integer) of the first matching window (or 0 if none).

Since all non-zero numbers are seen as "true", the statement if WinExist(WinTitle) is true whenever WinTitle exists.

Remarks

If a qualified window exists, the Last Found Window will be updated to be that window.

To discover the HWND of a control (for use with Post/SendMessage or DllCall), use ControlGet Hwnd or MouseGetPos.

SetWinDelay does not apply to this function.

IfWinExist / IfWinNotExist, WinActive(), SetTitleMatchMode, DetectHiddenWindows, Last Found Window, Process, WinActivate, WinWaitActive, WinWait, WinWaitClose, #IfWinActive/Exist

Examples

Activates either Notepad or another window, depending on which of them was found by the WinExist functions above. Note that the space between an "ahk_" keyword and its criterion value can be omitted; this is especially useful when using variables, as shown by the second WinExist.

if WinExist("ahk_class Notepad") or WinExist("ahk_class" ClassName)
    WinActivate ; Use the window found by WinExist.

Retrieves and reports the unique ID (HWND) of the active window.

MsgBox % "The active window's ID is " WinExist("A")

Returns if the calculator does not exist.

if not WinExist("Calculator")
    return