IfWinActive / IfWinNotActive


Überprüft, ob das angegebene Fenster existiert und momentan aktiv (d. h. das vorderste) ist.

IfWinActive [, WinTitle, WinText, ExcludeTitle, ExcludeText]
IfWinNotActive [, WinTitle, WinText, ExcludeTitle, ExcludeText]
UniqueID := WinActive ("WinTitle", "WinText", "ExcludeTitle", "ExcludeText")

Parameter

WinTitle Der Titel (oder ein Teil davon) des Ziel-Fensters (die Bedingungen für eine Übereinstimmung werden von SetTitleMatchMode bestimmt). Falls dieser und die restlichen 3 Parameter fehlen, wird das Zuletzt gefundene Fenster benutzt. Um eine Fenster-Klasse zu verwenden, geben Sie ahk_class ExactClassName (wie es der Window Spy anzeigt) an. Um einen Prozeßbezeichner (process identifier (PID)) zu verwenden, geben Sie ahk_pid %VarMitPID% an. Für eine Fenster-Gruppe geben Sie ahk_group GroupName an. Um die ID-Nummer eines Fensters zu verwenden, geben Sie ahk_id %VarContainingID% an. Die Suche läßt sich durch Angabe mehrerer Kriterien eingrenzen. Beispiel: MeineDatei.txt ahk_class Notepad
WinText Wenn vorhanden, muß dieser Parameter ein Teilstring eines einzelnen Textelements vom Zielfenster sein (so, wie es vom Window Spy entdeckt wurde). Mit DetectHiddenText On werden auch versteckte Textelemente erkannt.
ExcludeTitle Fenster, deren Titel diesen Wert enthalten, werden nicht betrachtet.
Achtung: Wegen der Rückwärtskompatibilität zu .aut-Scripts wird dieser Parameter als Befehl interpretiert, wenn sein Name einem Befehl entspricht. Um dies zu umgehen, verwenden Sie stattdessen die WinActive()-Funktion.
ExcludeText Fenster, deren Text diesen Wert enthält, werden nicht betrachtet.

Bemerkungen

Falls kein Parameter angegeben ist, wird das zuletzt gefundene Fenster benutzt.

Wenn bei einem dieser Befehle das aktive Fenster den Suchkriterien entspricht, wird es zum Zuletzt gefundenen Fenster; sprich, wenn das Ergebnis von IfWinActive "wahr" oder IfWinNotActive "falsch" ist, wird das Zuletzt gefundene Fenster aktualisiert.

Die Funktion WinActive() liefert die ID (HWND) des aktiven Fensters zurück, wenn es den angegebenen Kriterien entspricht. Wenn nicht, gibt sie 0 zurück. Während alle Zahlen ungleich Null als "wahr" gelten, ergibt if WinActive("WinTitle") immer wahr, wenn WinTitle activ ist.

SetWinDelay gilt nicht für IfWinActive/IfWinNotActive.

Bei Fenster-Titeln und -Texten wird nach Groß-/Kleinschreibung unterschieden. Versteckte Fenster werden nur entdeckt, wenn DetectHiddenWindows On ist.

Siehe auch

IfWinExist, SetTitleMatchMode, DetectHiddenWindows, Last Found Window, WinActivate, WinWaitActive, WinWait, WinWaitClose, #IfWinActive/Exist

Beispiel

IfWinActive, Unbenannt - Editor
{
    WinMaximize  ; Maximiert das vom obigen IfWinActive gefundene Editor-Fenster.
    Send, A bissi Text.{Enter}
    return
}

if WinActive("ahk_class Notepad") or WinActive("ahk_class" . ClassName)  ; "ahk_class" muß kein Leerzeichen folgen.
    WinClose  ; Verwendet das Zuletzt gefundene Fenster.