StatusBarWait

Wartet, bis die Statusleiste eines Fensters eine bestimmte Zeichenkette enthält.

StatusBarWait , LeisteText, Zeitlimit, SegmentNummer, FensterTitel, FensterText, Intervall, AusnahmeTitel, AusnahmeText

Parameter

LeisteText

Wenn leer oder weggelassen, wartet der Befehl, bis die Statusleiste leer ist. Andernfalls geben Sie den Text oder einen Teil des Textes an, auf dessen Erscheinen der Befehl 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.

Zeitlimit

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.

SegmentNummer

Wenn leer oder 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. Kann ein Ausdruck sein.

FensterTitel, FensterText, 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.

Intervall

Wenn leer oder weggelassen, wird standardmäßig 50 verwendet. Andernfalls geben Sie an, wie oft die Statusleiste geprüft werden soll, während der Befehl wartet (in Millisekunden). Kann ein Ausdruck sein.

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, eine Ausnahme auszulösen, wenn der Zugriff auf die Statusleiste fehlschlägt. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird auf 1 gesetzt, wenn der Befehl das Zeitlimit überschritten hat, bevor eine Übereinstimmung in der Statusleiste gefunden werden konnte. Es wird auf 2 gesetzt, wenn der Zugriff auf die Statusleiste fehlgeschlagen ist. Es wird auf 0 gesetzt, wenn eine Übereinstimmung gefunden wurde.

Bemerkungen

Dieser Befehl 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 der Befehl auf zu warten, auch dann, wenn ein anderes Fenster mit demselben FensterTitel und FensterText existiert.

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

StatusBarGetText, WinGetTitle, WinGetText, ControlGetText

Beispiele

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.
    StatusBarWait, gefunden, 30
    if ErrorLevel
        MsgBox, Das Zeitlimit wurde überschritten oder es gab ein Problem.
    else
        MsgBox, Die Suche war erfolgreich.
}

Wartet auf eine Änderung der Statusleiste im aktiven Fenster. Dieses Beispiel benötigt [v1.0.46.06+].

SetTitleMatchMode RegEx  ; Akzeptiert Reguläre Ausdrücke für den nachfolgenden Gebrauch.
if WinExist("A")  ; Macht das aktive Fenster zum zuletzt gefundenen Fenster.
{
    StatusBarGetText, Originaltext
    StatusBarWait, ^(?!^\Q%Originaltext%\E$)  ; Dieser reguläre Ausdruck wartet auf eine Änderung des Textes.
}