WinActive() / IfWin[Not]Active

Überprüft, ob ein bestimmtes Fenster existiert und zurzeit aktiv ist. Ist dies der Fall, wird WinActive() dessen Eindeutige ID (HWND) zurückgeben.

WinActive()

EindeutigeID := WinActive(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 aktiven Fensters (als hexadezimalen Integer) zurück, wenn es die angegebenen Kriterien erfüllt. Ist dies nicht der Fall, gibt die Funktion eine 0 zurück. Da alle Zahlen ungleich Null als "wahr" angesehen werden, ist die Anweisung if WinActive(Fenstertitel) immer dann wahr, wenn Fenstertitel aktiv ist.

Beispiele

if WinActive("ahk_class Notepad") or WinActive("ahk_class" . Klassenname)  ; Nach "ahk_class" muss ein Leerzeichen erfolgen.
    WinClose  ; Verwendet das zuletzt gefundene Fenster.

IfWin[Not]Active

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

IfWinActive , Fenstertitel, Fenstertext, Titelausnahme, Textausnahme
IfWinNotActive , 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]Active diesen Parameter als Befehl, wenn ihm der Name eines Befehls gegeben wurde. Um das zu umgehen, nutzt man stattdessen die WinActive-Funktion.

Textausnahme

Ignoriert Fenster, deren Textelemente diesen Wert enthalten.

Bemerkungen

SetWinDelay hat keinen Einfluss auf diesen Befehl.

Beispiele

IfWinActive, Unbenannt - Editor
{
    WinMaximize  ; Maximiert das oben gefundene Fenster.
    Send, Dies ist ein Text.{Enter}
    return
}

Bemerkungen

Wenn alle Parameter fehlen, wird das Zuletzt Gefundene Fenster verwendet.

Wenn die Funktion oder der Befehl feststellt, dass das aktive Fenster eine geeignete Übereinstimmung ist, wird das Zuletzt Gefundene Fenster aktualisiert, um das aktive Fenster zu sein. Wenn also WinActive oder IfWinActive als "wahr" oder IfWinNotActive als "falsch" gewertet wird, wird das Zuletzt Gefundene Fenster aktualisiert.

Ein einfacher Weg, die eindeutige ID des aktiven Fensters abzurufen, ist es, AktiveHwnd := WinExist("A") zu verwenden.

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

Siehe auch

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