Wartet, bis ein bestimmtes Fenster existiert.
HWND := WinWait(FensterTitel, FensterText, Zeitlimit, AusnahmeTitel, AusnahmeText)
Typ: Zeichenkette, Integer oder Objekt
Mindestens einer dieser Parameter ist erforderlich. 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 kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
Wenn weggelassen, wird die Funktion 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.
Typ: Integer
Diese Funktion gibt die HWND-Nummer (eindeutige ID) des gefundenen Fensters zurück, oder 0, wenn die Funktion das Zeitlimit überschritten hat.
Die Funktion hört bereits auf zu warten, wenn ein passendes Fenster gefunden wird, und nicht erst, wenn Zeitlimit abgelaufen ist. In diesem Fall wird das Zuletzt Gefundene Fenster aktualisiert und die Skriptausführung fortgesetzt.
Wenn FensterTitel eine reine HWND-Nummer ist (als Integer oder Objekt mit einer HWND-Eigenschaft), werden versteckte Fenster nur erkannt, wenn DetectHiddenWindows verwendet wird. Dies gilt nur für WinWait und WinWaitClose; bei anderen fensterspezifischen Funktionen bewirkt die Angabe einer reinen HWND-Nummer, dass versteckte Fenster immer erkannt werden, unabhängig von DetectHiddenWindows.
Wenn FensterTitel eine ungültige reine HWND-Nummer ist, kehrt die Funktion sofort zurück, unabhängig von Zeitlimit. Zu warten, bis ein anderes Fenster mit derselben HWND-Nummer erstellt wird, wäre nicht sinnvoll, da die Chance hoch ist, dass beide Fenster nichts miteinander zu tun haben.
Während die Funktion 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 dieser Funktion verwendet wurden, sieht die Funktion die Änderung nicht, d.h. die Funktion verwendet weiterhin den Titel und Text, die ursprünglich in den Variablen vorhanden waren, als die Funktion zu warten begann.
Im Gegensatz zu WinWaitActive kann hier nicht das Zuletzt Gefundene Fenster verwendet werden. Daher muss mindestens einer der Fensterparameter (FensterTitel, FensterText, AusnahmeTitel, AusnahmeText) einen nicht-leeren Wert enthalten.
WinWaitActive, WinWaitClose, WinExist, WinActive, ProcessWait, SetTitleMatchMode, DetectHiddenWindows
Öffnet Notepad und wartet maximal 3 Sekunden, bis es existiert. Wenn WinWait das Zeitlimit überschreitet, wird eine Fehlermeldung angezeigt, andernfalls wird Notepad minimiert.
Run "notepad.exe" if WinWait("Unbenannt - Editor", , 3) WinMinimize ; Verwendet das von WinWait gefundene Fenster. else MsgBox "WinWait hat das Zeitlimit überschritten."