Wartet, bis die Statusleiste eines Fensters eine bestimmte Zeichenkette enthält.
StatusBarWait LeisteText, Zeitlimit, SegmentNummer, FensterTitel, FensterText, Intervall, AusnahmeTitel, AusnahmeText
Typ: Zeichenkette
Wenn leer oder weggelassen, wartet die Funktion, bis die Statusleiste leer ist. Andernfalls geben Sie den Text oder einen Teil des Textes an, auf dessen Erscheinen die Funktion warten soll. Der Text ist Groß-/Kleinschreibung-sensitiv. Das Übereinstimmungsverhalten wird durch SetTitleMatchMode bestimmt, ähnlich wie bei FensterTitel unten.
Um stattdessen auf eine Änderung des Leistentextes zu warten, führen Sie StatusBarGetText wiederholt mit einer Schleife aus oder verwenden Sie das RegEx-Beispiel am Ende dieser Seite.
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
Wenn weggelassen, wird standardmäßig 1 verwendet, was üblicherweise das Segment ist, das den Text von Interesse enthält. Andernfalls geben Sie die Nummer des Leistensegments an, dessen Text abgerufen werden soll.
Typ: Zeichenkette, Integer oder Objekt
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 kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
Typ: Integer
Wenn weggelassen, wird standardmäßig 50 verwendet. Andernfalls geben Sie an, wie oft die Statusleiste geprüft werden soll, während die Funktion wartet (in Millisekunden).
Typ: Integer (boolesch)
Diese Funktion gibt 1 (true) zurück, wenn eine Übereinstimmung gefunden wurde, oder 0 (false), wenn die Funktion das Zeitlimit überschritten hat.
Es wird ein TargetError ausgelöst, wenn das Zielfenster nicht gefunden werden konnte oder keine reguläre Statusleiste enthält.
Es wird ein OSError ausgelöst, wenn es ein Problem beim Senden der SB_GETPARTS-Meldung gab oder keine Antwort innerhalb von 2000 ms erfolgte, oder wenn kein Speicher innerhalb des Prozesses, dem die Statusleiste gehört, reserviert werden konnte.
Diese Funktion versucht, die erste reguläre Statusleiste eines Fensters zu lesen (allgemeines Microsoft-Steuerelement: msctls_statusbar32). Einige Programme verwenden eigene Statusleisten oder spezielle Versionen des MS-Steuerelements - in diesem Fall werden solche Leisten nicht unterstützt.
Anstatt StatusBarGetText wiederholt mit einer Schleife auszuführen, ist es in der Regel effizienter, StatusBarWait zu verwenden, da es Optimierungen enthält, die den Overhead durch mehrfache Aufrufe von StatusBarGetText vermeiden.
StatusBarWait ermittelt das Zielfenster, bevor es damit beginnt, auf eine Übereinstimmung zu warten. Wenn dieses Zielfenster geschlossen wird, hört die Funktion auf zu warten, auch dann, wenn ein anderes Fenster mit demselben FensterTitel und FensterText existiert.
Während die Funktion wartet, können neue Threads via Hotkeys, benutzerdefinierte Menüpunkte oder Timer gestartet werden.
StatusBarGetText, WinGetTitle, WinGetText, ControlGetText
Schreibt ein neues Suchmuster in ein existierendes Explorer-/Suchfenster.
if WinExist("Suchergebnisse") ; Setzt das zuletzt gefundene Fenster, um das folgende zu vereinfachen. { WinActivate Send "{tab 2}!o*.txt{enter}" ; Das Suchmuster in das Suchfenster schreiben. Sleep 400 ; Der Statusleiste Zeit geben, auf "wird durchsucht" zu wechseln. if StatusBarWait("gefunden", 30) MsgBox "Die Suche war erfolgreich." else MsgBox "Die Funktion hat das Zeitlimit überschritten." }
Wartet auf eine Änderung der Statusleiste im aktiven Fenster.
SetTitleMatchMode "RegEx" ; Akzeptiert Reguläre Ausdrücke für den nachfolgenden Gebrauch. if WinExist("A") ; Macht das aktive Fenster zum zuletzt gefundenen Fenster. { Originaltext := StatusBarGetText() StatusBarWait "^(?!^\Q" Originaltext "\E$)" ; Dieser reguläre Ausdruck wartet auf eine Änderung des Textes. }