Closes the specified window.
WinClose [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText] |
Parameters
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 close a group of windows, specify ahk_group GroupName (WinText, ExcludeTitle, and ExcludeText must be blank in this case). 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. |
SecondsToWait | If omitted or blank, the command will not wait at all. If 0, it will wait 500ms. Otherwise, it will wait the indicated number of seconds (can contain a decimal point or be an expression) for the window to close. If the window does not close within that period, the script will continue. ErrorLevel is not set by this command, so use IfWinExist or WinWaitClose if you need to determine for certain that a window is closed. While the command is in a waiting state, new threads can be launched via hotkey, custom menu item, or timer. |
ExcludeTitle | Windows whose titles include this value will not be considered. |
ExcludeText | Windows whose text include this value will not be considered. |
Remarks
This command sends a close message to a window. The result depends on the window (it may ask to save data, etc.)
If a matching window is active, that window will be closed in preference to any other matching window beneath it. In general, if more than one window matches, the topmost (most recently used) will be closed.
This command operates only upon the topmost matching window except when WinTitle is ahk_group GroupName, in which case all windows in the group are affected.
WinClose sends a WM_CLOSE message to the target window, which is a somewhat forceful method of closing it. An alternate method of closing is to send the following message. It might produce different behavior because it is similar in effect to pressing Alt-F4 or clicking the window's close button in its title bar:
PostMessage, 0x112, 0xF060,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE
If a window does not close via WinClose, you can force it to close with WinKill.
Window titles and text are always case sensitive. Hidden windows are not detected unless DetectHiddenWindows has been turned on.
Related
WinKill, WinWaitClose, Process, WinActivate, SetTitleMatchMode, DetectHiddenWindows, Last Found Window, IfWinExist, IfWinActive, WinWaitActive, WinWait, GroupActivate
Example
IfWinExist, Untitled - Notepad WinClose ; use the window found above else WinClose, Calculator