Liefert verschiedene Arten von Informationen über ein AutoHotkey GUI-Control.
GuiControlGet, OutputVar [, Sub-command, ControlID, Param4]
| OutputVar | Der Name der Variablen, in der das Ergebnis gespeichert werden soll. Wenn die Anweisung nicht ausgeführt werden kann (s.u. ErrorLevel), wird die Variable geleert. |
| Sub-command | Siehe untenstehende Auflistung. |
| ControlID | Wenn dieser Parameter leer ist oder weggelassen wird, wird der Inhalt von OutputVar verwendet. Beispiel: GuiControlGet, MyEdit entspricht GuiControlGet, MyEdit,, MyEdit. Wenn dem Control eine Variable zugeordnet wurde (vName), sollte der Name dieser Variablen als ControlID angegeben werden. Diese Methode hat den Vorrang gegenüber den weiteren nachfolgend beschriebenen. Aus diesem Grund ist es empfehlenswert, allen Controls, die später mit GuiControl oder GuiControlGet bearbeitet werden sollen, eine Variable zuzuordnen, selbst wenn das Control keine Eingaben entgegennehmen kann (wie z.B. GroupBox oder Text). Anderenfalls kann in ControlID entweder die ClassNN (der Klassenname und die Instanznummer) oder der Name/Text (Aufschrift/Inhalt) des Controls angegeben werden, die beide mit dem mitgelieferten Tool "Window Spy" ermittelt werden können. Bei Angabe von Name/Text wird das Suchergebnis von der aktuellen Einstellung für SetTitleMatchMode beeinflusst. Hinweis: Auch der Dateiname eines Picture-Controls kann, so wie er bei der Erstellung des Controls angegeben wurde, als ControlID verwendet werden. |
| Param4 | Dieser Parameter wird weggelassen, wenn es nicht in der untenstehenden Auflistung der Sub-commands anders beschrieben ist. |
ErrorLevel wird auf 1 gesetzt, wenn das angegebene Fenster/Control nicht existiert oder andere Probleme die Ausführung der Anweisung verhindern, anderenfalls auf 0.
(Leer): Sub-command wird leer gelassen, um den Inhalt des Controls anzufordern. Das ist für alle Arten von Controls mit Ausnahme der folgenden selbsterklärend:
Picture: Liefert den Namen der Bilddatei, der dem Control ursprünglich bei der Erstellung zugewiesen wurde. Dieser Name ändert sich auch dann nicht, wenn dem Control im Skript eine neue Bilddatei zugewiesen wird.
Edit: Liefert den Inhalt. Alle Zeilenumbrüche werden dabei als einzelne Zeilenvorschübe (LF: `n) dargestellt, anders als bei den allgemeinen Anweisungen wie ControlGetText und ControlSetText, die das normale CR+LF (`r`n) verwenden.
Hotkey: Wird geleert, wenn das Control keinen Hotkey enthält. Anderenfalls werden die Modifizierungstasten und der Tastenname geliefert. Beipiele: ^!C, ^Home, +^NumpadHome.
Checkbox/Radio: Liefert 1, wenn das Control angeschaltet ist, 0, wenn es ausgeschaltet ist, oder -1, wenn es ausgegraut ist. Um stattdessen den Erläuterungstext zu erhalten, muss in Param4 das Wort "Text" angegeben werden. Hinweis: Anders, als bei der Gui Submit Anweisung, werden Radiobuttons immer einzeln abgefragt, auch wenn sie einer Gruppe angehören.
UpDown/Slider/Progress: Liefert den aktuellen Positionswert.
Tab/DropDownList/ComboBox/ListBox: Liefert den Text/Namen des ausgewählten Elements/Registers (oder seine Position, wenn die Option AltSubmit angegeben wurde). Wenn in einer ComboBox kein Listenelement ausgewählt ist, wird stattdessen der Inhalt des Eingabefeldes geliefert. Bei einer ListBox mit Mehrfachauswahl wird für die Ausgabe das aktuelle Listentrennzeichen der GUI verwendet.
ListView und TreeView: Diese Controls werden nicht unterstützt, wenn Sub-command leer ist. Stattdessen verwendet man die eingebauten ListView-Funktionen und TreeView-Funktionen.
StatusBar: Liefert nur den Text des ersten Teils.
Hinweis: Um anstelle des Inhalts unbedingt den Erläuterungstext bzw. die Aufschrift eines Controls abzufragen, muss in Param4 das Wort "Text" angegeben werden.
GuiControlGet, OutputVar, Pos: Liefert die
Position und Größe eines Controls. Die Position ist relativ zur
oberen linken Ecke der Innenfläche des GUI Fensters,
die weder die Titelzeile noch die Menüzeile und die Ränder
umfasst. Das Ergebnis wird in vier Variablen gespeichert, deren Namen
alle mit OutputVar beginnen, gefolgt von einem der folgenden Buchstaben: X (X-Koordinate), Y (Y-Koordinate), W (Breite) und H (Höhe).
Beipiel:
GuiControlGet, MyEdit, Pos
MsgBox Die X-Koordinate ist %MyEditX%. Die Y-Koordinate ist %MyEditY%. Die Breite ist %MyEditW%. Die Höhe ist %MyEditH%.
Wenn diese Variablen innerhalb einer Funktion als globale Variablen angelegt werden sollen, muss OutputVar vor Ausführung der Anweisung als globale Variable deklariert werden. Das Gegenteil gilt innerhalb einer Funktion, in der alle Variablen als global gelten (assume-global).
GuiControlGet, OutputVar, Focus:
Liefert die ClassNN (Klassenname und Instanznummer) des Controls,
das momentan den Eingabefokus hat. Das angegebene GUI-Fenster muss aktiv sein, damit eines seiner Controls den Fokus besitzen kann. Wenn es nicht aktiv ist, wird OutputVar geleert. Beispiel: GuiControlGet, focused_control, focus
GuiControlGet, OutputVar, FocusV [v1.0.43.06+]: Ähnlich wie oben bei Focus, anstelle der ClassNN wird aber der Name der dem Control zugeordneten Variablen geliefert. Wenn dem Control keine Variable zugeordnet ist, werden die ersten 63 Stellen des Inhalts oder der Aufschrift des Controls geliefert (damit wird z.B. die Notwendigkeit vermieden, jedem Button eine eigene Variable zuordnen zu müssen).
GuiControlGet, OutputVar, Enabled: Liefert 1, wenn das Control aktiviert ist, sonst 0 (deaktiviert).
GuiControlGet, OutputVar, Visible: Liefert 1, wenn das Control sichtbar ist, sonst 0 (verborgen).
GuiControlGet, OutputVar, Hwnd [v1.0.46.16+]: Liefert die HWND (window handle, ahk_id, eindeutige ID) des Controls. Die HWND eines Controls wird oft mit PostMessage, SendMessage und DllCall genutzt. Hinweis: HwndOutputVar ist normalerweise der einfachere Weg, um die HWND zu erhalten.
GuiControl, 2:Show, MyButton
GuiControl, 2:, MyListBox, Item1|Item2
Ein GUI-Thread ist jeder Thread, der als Folge einer Aktion in einer GUI aufgerufen wird. Das gilt auch für die Auswahl eines Eintrags der Menüzeile der GUI und den Aufruf eines G-Labels, wie z.B. durch Klick auf einen Button.
Die voreingestellte GUI-Nummer eines GUI-Threads ist die der aufrufenden GUI. Andere Threads haben als Voreinstellung die 1.
GuiControlGet, MyEdit
GuiControlGet, CtrlContents,, MyEdit ; Wie oben, nur das nicht die voreingestellte Ausgabevariable verwendet wird.
GuiControlGet, MyCheckbox1 ; Liefert 1, wenn die CheckBox angeschaltet ist, sonst 0. GuiControlGet, MyCheckbox1,,, Text ; Liefert den Erläuterungstext der CheckBox. GuiControlGet, Pic, Pos, Static4 ; Liefert die Position und Größe in PicX, PicY, PicW und PicH