WinWaitActive / WinWaitNotActive

Wartet, bis ein bestimmtes Fenster aktiv oder nicht aktiv ist.

WinWaitActive , FensterTitel, FensterText, Zeitlimit, IgnoriereTitel, IgnoriereText
WinWaitNotActive , FensterTitel, FensterText, Zeitlimit, 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.

Zeitlimit

Die zu wartenden Sekunden, bevor eine Zeitüberschreitung erfolgt und ErrorLevel auf 1 gesetzt wird. Lassen Sie diesen Parameter weg oder leer, um den Befehl unendlich lang warten zu lassen. Die Angabe von 0 ist das gleiche wie, als würde man 0.5 angeben. Dieser Parameter kann ein Ausdruck sein.

IgnoriereTitel

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

IgnoriereText

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

ErrorLevel

ErrorLevel wird auf 1 gesetzt, wenn der Befehl das Zeitlimit überschritten hat, ansonsten auf 0.

Bemerkungen

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 Ausführung des Skripts fortgesetzt.

Sowohl WinWaitActive als auch WinWaitNotActive werden das zuletzt gefundene Fenster aktualisieren, wenn zu Beginn des Befehls ein geeignetes Fenster aktiv ist. WinWaitActive wird zudem das zuletzt gefundene Fenster aktualisieren, wenn ein geeignetes Fenster vor Ablauf des Zeitlimits aktiv wird.

Während der Befehl im Wartezustand ist, können neue Threads via Hotkeys, benutzerdefinierte Menüpunkte oder Timer gestartet werden.

Wenn ein anderer Thread die Inhalte von Variablen, die der Befehl als Parameter verwendet, zwischendurch ändert, wird der Befehl diese Änderung ignorieren; das heißt, dass der Befehl weiterhin den Titel und Text verwendet, die ursprünglich in den Variablen vorhanden waren, als der Befehl zum ersten Mal zu warten begann.

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

WinWait, WinWaitClose, WinExist(), WinActive(), SetTitleMatchMode, DetectHiddenWindows

Beispiele

Öffnet den Texteditor und wartet maximal 2 Sekunden, bis dieser aktiv ist. Wenn WinWait das Zeitlimit überschreitet, wird eine Fehlermeldung angezeigt, ansonsten wird der Texteditor 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.