Wartet, bis ein bestimmtes Fenster aktiv oder nicht aktiv ist.
WinWaitActive , FensterTitel, FensterText, Zeitlimit, AusnahmeTitel, AusnahmeText WinWaitNotActive , FensterTitel, FensterText, Zeitlimit, AusnahmeTitel, AusnahmeText
Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).
AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.
Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann. Standardmäßig muss ein Fenstertitel mit dem angegebenen FensterTitel oder AusnahmeTitel beginnen, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
Wenn leer oder weggelassen, wird der Befehl unendlich lang warten. Andernfalls geben Sie die maximale Wartezeit in Sekunden an. Um auf einen Bruchteil einer Sekunde zu warten, geben Sie eine Floating-Point-Zahl an, z.B. 0.25, um maximal 250 Millisekunden zu warten. Die Angabe von 0 entspricht der Angabe von 0.5. Dieser Parameter kann ein Ausdruck sein.
ErrorLevel wird auf 1 gesetzt, wenn der Befehl das Zeitlimit überschritten hat, andernfalls auf 0.
Der Befehl hört bereits auf zu warten, wenn ein passendes Fenster gefunden wird, und nicht erst, wenn Zeitlimit abgelaufen ist. In diesem Fall wird ErrorLevel sofort auf 0 gesetzt und die Skriptausführung fortgesetzt.
Sowohl WinWaitActive als auch WinWaitNotActive werden das Zuletzt Gefundene Fenster aktualisieren, wenn zu Beginn des Befehls ein geeignetes Fenster aktiv ist. Außerdem wird WinWaitActive das Zuletzt Gefundene Fenster aktualisieren, wenn ein geeignetes Fenster vor Ablauf des Zeitlimits aktiv wird.
Während der Befehl wartet, können neue Threads via Hotkeys, benutzerdefinierte Menüpunkte oder Timer gestartet werden.
Wenn ein anderer Thread den Inhalt der Variablen ändert, die für die Parameter dieses Befehls verwendet wurden, sieht der Befehl die Änderung nicht, d.h. der Befehl verwendet weiterhin den Titel und Text, die ursprünglich in den Variablen vorhanden waren, als der Befehl zu warten begann.
WinWait, WinWaitClose, WinExist(), WinActive(), SetTitleMatchMode, DetectHiddenWindows
Öffnet Notepad und wartet maximal 2 Sekunden, bis es aktiv ist. Wenn WinWait das Zeitlimit überschreitet, wird eine Fehlermeldung angezeigt, andernfalls wird Notepad minimiert.
Run, notepad.exe WinWaitActive, Unbenannt - Editor,, 2 if ErrorLevel { MsgBox, WinWait hat das Zeitlimit überschritten. return } else WinMinimize ; Verwendet das von WinWaitActive gefundene Fenster.