WinClose

Schließt ein bestimmtes Fenster.

WinClose , FensterTitel, FensterText, Wartezeit, IgnoriereTitel, IgnoriereText

Parameter

FensterTitel

Der Titel oder andere Möglichkeiten zum Identifizieren des Zielfensters. Weitere Informationen finden Sie unter FensterTitel-Parameter.

FensterText

Eine Zeichenkette, die in einem der Textelemente des Zielfensters enthalten ist (eventuell vorhandene Textelemente können mit dem internen Tool Window Spy aufgedeckt werden). Versteckte Textelemente werden nur erkannt, wenn DetectHiddenText eingeschaltet ist.

Wartezeit

Wenn dieser Parameter weggelassen wird oder leer ist, wird der Befehl überhaupt nicht warten. Wenn eine 0 angegeben ist, wird standardmäßig eine Wartezeit von 500 ms verwendet. Jeder andere Wert wird als Sekunden interpretiert (auch mit Dezimalpunkt oder als Ausdruck) und definiert, wie lange auf das Schließen des Fensters gewartet werden soll. Schließt sich das Fenster innerhalb dieser Zeit nicht, wird das Skript fortgesetzt. ErrorLevel wird nicht gesetzt, demzufolge können Sie WinExist(), IfWinExist oder WinWaitClose verwenden, um ein eindeutiges Schließen eines Fensters festzustellen. Während der Befehl im Wartezustand ist, können neue Threads via Hotkeys, benutzerdefinierte Menüpunkte oder Timer gestartet werden.

IgnoriereTitel

Alle Fenster, die diesen Wert in ihren Titeln enthalten, werden ignoriert.

IgnoriereText

Alle Fenster, die diesen Wert in ihren Textelementen enthalten, werden ignoriert.

Bemerkungen

Dieser Befehl sendet eine Close-Meldung an das Fenster. Das Ergebnis hängt vom Fenster ab (es könnte fragen, ob Sie die Daten speichern wollen, und so weiter).

Wenn ein übereinstimmendes Fenster aktiv ist, wird bei mehreren übereinstimmenden Fenstern vorrangig dieses Fenster geschlossen. Im Falle mehrerer übereinstimmender Fenster wird generell das oberste (aktuell verwendete) Fenster geschlossen.

Dieser Befehl agiert nur mit einem einzelnen Fenster, es sei denn, FensterTitel ist ahk_group GruppeName (ohne Angabe weiterer Kriterien), dann sind alle Fenster in der Gruppe betroffen.

WinClose sendet eine WM_CLOSE-Meldung an das Zielfenster, was eine etwas gewaltsame Methode zum Schließen des Fensters ist. Eine alternative Methode zum Schließen eines Fensters ist das Senden der folgenden Meldung. Beachten Sie aber, dass das Fenster sich dabei eventuell anders verhält, weil diese Methode quasi das gleiche ist wie, als würde man Alt+F4 oder die Schließen-Schaltfläche in der Titelleiste drücken:

PostMessage, 0x0112, 0xF060,,, FensterTitel, FensterText  ; 0x0112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

Wenn ein Fenster sich nicht via WinClose schließen lässt, können Sie es mit WinKill erzwingen.

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.

WinKill, WinWaitClose, Process, WinActivate, SetTitleMatchMode, DetectHiddenWindows, Zuletzt Gefundenes Fenster, WinExist(), WinActive(), WinWaitActive, WinWait, GroupActivate

Beispiele

Wenn der Texteditor vorhanden ist, schließe ihn, ansonsten schließe den Taschenrechner.

if WinExist("Unbenannt - Editor")
    WinClose ; Verwendet das von WinExist gefundene Fenster.
else
    WinClose, Rechner