Ermittelt die eindeutige ID, Prozess-ID oder den Prozessnamen eines bestimmten Fensters, oder eine Liste aller darin enthaltenen Steuerelemente. Zudem kann dieser Befehl eine Liste aller Fenster abrufen, die bestimmte Kriterien erfüllen.
WinGet, AusgabeVar , Unterbefehl, FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Geben Sie für Unterbefehl Folgendes an:
Ermittelt die eindeutige ID-Nummer eines Fensters.
WinGet, AusgabeVar, ID , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Auch bekannt als Window Handle (HWND). Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht. Die Funktionen WinExist() und WinActive() können auch verwendet werden, um die ID eines Fensters zu ermitteln; zum Beispiel wäre WinExist("A")
ein schneller Weg, die ID des aktiven Fensters abzurufen. Um die HWND-Nummer eines Steuerelements abzurufen (z. B. für Post/SendMessage oder DllCall), können Sie ControlGet Hwnd oder MouseGetPos nutzen.
Ermittelt die eindeutige ID-Nummer des letzten/untersten Fensters, wenn mehr als ein Fenster gefunden wird.
WinGet, AusgabeVar, IDLast , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Auch bekannt als Window Handle (HWND). Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht. Wenn nur eine Übereinstimmung vorhanden ist, verhält sich dieser Unterbefehl wie der ID- Unterbefehl. Dieses Konzept ist vergleichbar mit dem, das von WinActivateBottom verwendet wird.
Ermittelt die Prozess-ID-Nummer eines Fensters.
WinGet, AusgabeVar, PID , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht.
Ermittelt den Namen des Prozesses, der ein Fenster besitzt.
WinGet, AusgabeVar, ProcessName , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Zum Beispiel wäre das "notepad.exe". Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht.
Ermittelt den vollständigen Pfad und Namen des Prozesses, der ein Fenster besitzt.
WinGet, AusgabeVar, ProcessPath , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Zum Beispiel wäre das "C:\Windows\System32\notepad.exe". Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht.
Ermittelt die Anzahl vorhandener Fenster, die mit den Titel/Text-Parametern übereinstimmen.
WinGet, AusgabeVar, Count , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Wenn keine passenden Fenster gefunden werden, wird AusgabeVar auf 0 gesetzt. Um die Anzahl aller Fenster im Betriebssystem zu ermitteln, müssen Sie alle vier Titel-/Text-Parameter weglassen. Versteckte Fenster werden nur mitgezählt, wenn DetectHiddenWindows eingeschaltet ist.
Ermittelt die eindeutigen ID-Nummern aller vorhandenen Fenster, die mit den Titel/Text-Parametern übereinstimmen.
WinGet, AusgabeVar, List , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Um alle Fenster des gesamten Systems abzurufen, müssen Sie alle vier Titel-/Text-Parameter weglassen. Jede ID-Nummer wird in eine Variable gespeichert, deren Name mit dem Eigennamen von AusgabeVar beginnt (um einen Pseudo-Array zu formen). AusgabeVar selbst wird auf die Anzahl der abgerufenen Elemente gesetzt (0, wenn keine gefunden werden). Wenn AusgabeVar beispielsweise MeinArray wäre und gäbe es zwei übereinstimmende Fenster, würde MeinArray1 auf die ID des ersten Fensters, MeinArray2 auf die ID des zweiten Fensters und MeinArray selbst auf 2 gesetzt werden. Die Fenster werden von oben nach unten abgerufen (entsprechend der Tatsache, wie sie auf dem Desktop gestapelt sind). Versteckte Fenster werden nur mitgezählt, wenn DetectHiddenWindows eingeschaltet ist. Um innerhalb einer Funktion ein Pseudo-Array global statt lokal zu machen, deklarieren Sie MeinArray als globale Variable, bevor Sie diesen Befehl verwenden (das Gegenteil davon gilt für Assume-Global-Funktionen). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.
Ermittelt den minimierten/maximierten Zustand eines Fensters.
WinGet, AusgabeVar, MinMax , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
AusgabeVar wird leer gemacht, wenn keine passenden Fenster gefunden werden, ansonsten ist eine der folgenden Zahlen enthalten:
Ermittelt die Namen aller Steuerelemente in einem Fenster.
WinGet, AusgabeVar, ControlList , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Falls keine passenden Fenster gefunden werden oder keine Steuerelemente im Fenster vorhanden sind, wird AusgabeVar leer gemacht. Ansonsten wird eine Liste zurückgegeben, die die ClassNN-Bezeichnung von jedem Steuerelement enthält (ClassNN ist der Klassenname des Steuerelements, gefolgt der Reihenfolgenummer innerhalb des übergeordneten Fensters, wie im internen Tool Window Spy angezeigt).
Jedes Element, außer das letzte, endet mit einem LF-Zeichen (`n). Beispiel #3 im letzten Abschnitt zeigt, wie eine parsende Schleife genutzt werden kann, um die Steuerelementnamen einzeln durchzugehen.
Steuerelemente werden nach ihrer Z-Reihenfolge sortiert, was üblicherweise der Navigation via Tab entspricht, sofern vom Fenster unterstützt.
Ermittelt die eindeutigen ID-Nummern aller Steuerelemente in einem Fenster.
WinGet, AusgabeVar, ControlListHwnd , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Falls keine passenden Fenster gefunden werden oder keine Steuerelemente im Fenster vorhanden sind, wird AusgabeVar leer gemacht. Ansonsten ist jede eindeutige ID die HWND-Nummer des Steuerelements. Jedes Element, außer das letzte, endet mit einem LF-Zeichen (`n).
Steuerelemente werden nach ihrer Z-Reihenfolge sortiert, was üblicherweise der Navigation via Tab entspricht, sofern vom Fenster unterstützt.
Ermittelt die Transparenzstärke eines Fensters.
WinGet, AusgabeVar, Transparent , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Mit WinSet kann ein Fenster transparent gemacht werden. AusgabeVar wird leer gemacht, wenn: 1) das Betriebssystem älter als Windows XP ist; 2) keine passenden Fenster gefunden werden; 3) das Fenster nicht transparent ist; oder 4) andere Bedingungen auftreten (durch das Verhalten des Betriebssystems), z. B. wenn das transparent gemachte Fenster minimiert, wiederhergestellt und/oder skaliert wurde. Ansonsten wird eine Zahl zwischen 0 und 255 gespeichert - 0 wäre ein durchsichtiges Fenster und 255 ein undurchsichtiges Fenster. Zum Beispiel:
MouseGetPos,,, MausFenster WinGet, Transparenz, Transparent, ahk_id %MausFenster% ; Transparenz eines Fensters unterhalb des Mauszeigers.
Ermittelt die Farbe, die in einem Fenster als transparent markiert ist.
WinGet, AusgabeVar, TransColor , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Mit WinSet kann eine Farbe als transparent markiert werden. AusgabeVar wird leer gemacht, wenn: 1) das Betriebssystem älter als Windows XP ist; 2) keine passenden Fenster gefunden werden; 3) das Fenster keine transparente Farbe hat; oder 4) andere Bedingungen auftreten (durch das Verhalten des Betriebssystems), z. B. wenn das transparent gemachte Fenster minimiert, wiederhergestellt und/oder skaliert wurde. Ansonsten wird eine 6-stellige hexadezimale RGB-Farbe gespeichert (z. B. 0x00CC99). Zum Beispiel:
MouseGetPos,,, MausFenster WinGet, TransFarbe, TransColor, ahk_id %MausFenster% ; Transparente Farbe eines Fensters unterhalb des Mauszeigers.
Ermittelt eine 8-stellige Hexadezimalzahl, die den Style eines Fensters repräsentiert.
WinGet, AusgabeVar, Style , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht. Das folgende Beispiel stellt fest, ob ein Fenster den WS_DISABLED-Style hat:
WinGet, Style, Style, Mein Fenstertitel if (Style & 0x8000000) ; 0x8000000 ist WS_DISABLED. MsgBox Das Fenster ist deaktiviert.
Die Style-Tabelle beinhaltet eine Auflistung einiger Styles.
Ermittelt eine 8-stellige Hexadezimalzahl, die den erweiterten Style eines Fensters repräsentiert.
WinGet, AusgabeVar, ExStyle , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht. Das folgende Beispiel stellt fest, ob ein Fenster den WS_EX_TOPMOST-Style hat (immer im Vordergrund):
WinGet, ExStyle, ExStyle, Mein Fenstertitel if (ExStyle & 0x8) ; 0x8 ist WS_EX_TOPMOST. MsgBox Das Fenster ist immer im Vordergrund.
Die Style-Tabelle beinhaltet eine Auflistung einiger Styles.
Die ID-Nummer eines Fensters bleibt nur zu dessen Lebzeiten gültig. Mit anderen Worten: Wenn man eine Anwendung neu starten würde, bekämen all ihre Fenster neue ID-Nummern.
Alle ID-Nummern, die von diesem Befehl abgerufen werden, sind numerisch (ohne das Präfix "ahk_id") und werden im hexadezimalen Format gespeichert, egal welche SetFormat-Einstellung gerade aktiv ist.
Die ID des Fensters, das sich unter dem Mauszeiger befindet, kann mit MouseGetPos abgerufen werden.
Zwar sind die ID-Nummern zurzeit vorzeichenlose 32-Bit-Integer, allerdings könnten sie in einer zukünftigen Version zu 64-Bit-Integer werden. Demzufolge sollte man numerische Operationen wie Addition bei solchen Werten vermeiden, weil solche Operationen ihre eingehenden Zeichenketten als vorzeichenfähige statt vorzeichenlose Integer voraussetzen.
Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.
WinGetClass, Process, WinGetTitle, MouseGetPos, ControlGet, ControlFocus, GroupAdd
Maximiert das aktive Fenster und meldet dessen eindeutige ID.
WinGet, AktiveID, ID, A WinMaximize, ahk_id %AktivID% MsgBox, Die ID des aktiven Fensters ist "%AktiveID%".
Besucht alle Fenster des gesamten Systems und zeigt Informationen zu jedem an.
WinGet, id, List,,, Program Manager Loop, %id% { diese_ID := id%A_Index% WinActivate, ahk_id %diese_ID% WinGetClass, diese_Klasse, ahk_id %diese_ID% WinGetTitle, dieser_Titel, ahk_id %diese_ID% MsgBox, 4, , Gehe alle Fenster durch`n%A_Index% von %id%`nahk_id %diese_ID%`nahk_class %diese_Klasse%`n%dieser_Titel%`n`nWeiter? IfMsgBox, NO, break }