WinClose
Closes the specified window.
WinClose WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText
Command Example: WinClose "A" Function Example: WinClose("A")
Parameters
- WinTitle
A window title or other criteria identifying the target window. See WinTitle.
- 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 WinExist 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 case sensitive. Hidden windows are not detected unless DetectHiddenWindows has been turned on.
Related
WinKill, WinWaitClose, ProcessClose, WinActivate, SetTitleMatchMode, DetectHiddenWindows, Last Found Window, WinExist, WinActive, WinWaitActive, WinWait, GroupActivate
Example
If WinExist("Untitled - Notepad") WinClose ; use the window found above else WinClose, Calculator