WinExist() / IfWin[Not]Exist

Überprüft, ob ein übereinstimmendes Fenster vorhanden ist. Wenn dies der Fall ist, gibt WinExist() die Eindeutige ID (HWND) des ersten übereinstimmenden Fensters zurück.

WinExist()

EindeutigeID := WinExist(Fenstertitel , Fenstertext, Titelausnahme, Textausnahme)

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.

Titelausnahme

Ignoriert Fenster, deren Titel diesen Wert enthalten.

Textausnahme

Ignoriert Fenster, deren Textelemente diesen Wert enthalten.

Rückgabewert

Diese Funktion gibt die Eindeutige ID (HWND) des ersten übereinstimmenden Fensters (als hexadezimalen Integer) zurück (oder 0, wenn keine gefunden werden). Da alle Zahlen ungleich Null als "wahr" angesehen werden, ist die Anweisung if WinExist(Fenstertitel) immer dann wahr, wenn Fenstertitel vorhanden ist.

Beispiele

if WinExist("ahk_class Notepad") or WinExist("ahk_class" . Klassenname)
    WinActivate  ; Verwendet das zuletzt gefundene Fenster.

MsgBox % "Die ID des aktiven Fensters ist " . WinExist("A")
If !WinExist("Rechner")  ; Das gleiche wie IfWinNotExist, Rechner
    return

IfWin[Not]Exist

Veraltet: Dieser Befehl ist nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die WinExist-Funktion.

IfWinExist , Fenstertitel, Fenstertext, Titelausnahme, Textausnahme
IfWinNotExist , Fenstertitel, Fenstertext, Titelausnahme, Textausnahme

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.

Titelausnahme

Ignoriert Fenster, deren Titel diesen Wert enthalten.

Hinweis: Aufgrund der Abwärtskompatibilität interpretiert IfWin[Not]Exist diesen Parameter als Befehl, wenn ihm der Name eines Befehls gegeben wurde. Um das zu umgehen, nutzt man stattdessen die WinExist-Funktion.

Textausnahme

Ignoriert Fenster, deren Textelemente diesen Wert enthalten.

Bemerkungen

SetWinDelay hat keinen Einfluss auf diesen Befehl.

Beispiele

IfWinExist, Unbenannt - Editor
{
    WinActivate  ; Verwendet automatisch das oben gefundene Fenster.
    WinMaximize  ; das gleiche
    Send, Dies ist ein Text.{Enter}
    return
}
IfWinNotExist, Rechner
    return
else
{
    WinActivate  ; Das obige "IfWinNotExist" setzt auch das "zuletzt gefundene" Fenster für uns.
    WinMove, 40, 40  ; Verschiebt es auf eine neue Position.
    return
}

Bemerkungen

Wenn alle Parameter fehlen, wird das Zuletzt Gefundene Fenster überprüft, ob es noch vorhanden ist (oder bei IfWinNotExist nicht vorhanden ist).

Wenn die Funktion oder der Befehl feststellt, dass ein geeignetes Fenster vorhanden ist, wird das Zuletzt Gefundene Fenster aktualisiert, um dieses Fenster zu sein. Wenn also WinExist oder IfWinExist als "wahr" oder IfWinNotExist als "falsch" gewertet wird, wird das Zuletzt Gefundene Fenster aktualisiert.

Um das HWND eines Steuerelements zu ermitteln (z. B. für Post/SendMessage oder DllCall), nutzt man ControlGet Hwnd oder MouseGetPos.

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

Siehe auch

IfWinActive, SetTitleMatchMode, DetectHiddenWindows, Zuletzt Gefundenes Fenster, Process, WinActivate, WinWaitActive, WinWait, WinWaitClose, #IfWinActive/Exist