GuiControlGet

Ruft verschiedene Arten von Informationen über ein Steuerelement innerhalb eines GUI-Fensters ab.

GuiControlGet, AusgabeVar , Unterbefehl, StrlmntID, Wert

Parameter

AusgabeVar
Name der Ausgabevariable, in der das Ergebnis von Unterbefehl gespeichert werden soll.
Unterbefehl, Wert
Diese Parameter sind voneinander abhängig und können wie unten gezeigt verwendet werden.
StrlmntID

Wenn leer oder weggelassen, verhält es sich so, als wäre der Name der zugeordneten Variable des Steuerelements (falls vorhanden) angegeben worden (z. B. ist GuiControlGet, MeinEdit dasselbe wie GuiControlGet, MeinEdit,, MeinEdit). Andernfalls geben sie den Namen der zugeordneten Variable (falls vorhanden), die ClassNN, den Text, oder in [v1.1.04+] das HWND des Steuerelements an. Einzelheiten finden Sie unter Steuerelementidentifikatoren.

Wenn sich das Steuerelement nicht auf der Standard-GUI befindet, muss zudem der Name oder das HWND der GUI angegeben werden -- außer in [v1.1.20+], wenn StrlmntID ein HWND ist, da jedes HWND eindeutig ist. Weitere Informationen finden Sie unter Bemerkungen.

Unterbefehle

Geben Sie für Unterbefehl Folgendes an:

(Leer)

Liefert den Inhalt eines Steuerelements.

GuiControlGet, AusgabeVar ,, StrlmntID, Text

Lassen Sie Unterbefehl leer, um den Inhalt des Steuerelements abzurufen.

Geben Sie im letzten Parameter das Wort Text an, um nicht den Inhalt, sondern den Text bzw. die Beschriftung eines Steuerelements abzurufen. Dies ist nur sinnvoll für Button-, CheckBox-, Radio- oder GroupBox-Steuerelemente.

Alle Steuerelemente sind selbsterklärend, mit Ausnahme von:

Picture: Liefert den Dateinamen des Bildes, wie er ursprünglich bei der Erstellung des Steuerelements angegeben wurde. Dieser Name ändert sich auch dann nicht, wenn später ein anderer Dateiname angegeben wird.

Edit: Liefert den Inhalt, wobei alle Zeilenumbrüche im Text nur als Zeilenvorschübe (`n) ausgegeben werden, nicht wie üblich als Wagenrücklauf-Zeilenvorschub-Paare (`r`n), die von Nicht-GUI-Befehlen wie ControlGetText und ControlSetText verwendet werden.

Hotkey: Liefert einen leeren Wert, wenn im Steuerelement kein Hotkey angegeben ist. Andernfalls werden die Modifikatoren und der Tastenname abgerufen. Beispiele: ^!C, ^Home, +^NumpadHome.

CheckBox/Radio: Liefert 1 für markiert, 0 für unmarkiert oder -1 für unbestimmt. Geben Sie das Wort Text im letzten Parameter an, um stattdessen den Text bzw. die Beschriftung des Steuerelements zu erhalten. Anders als bei Gui Submit werden Radio-Steuerelemente immer einzeln abgerufen, egal ob sie zu einer Radiogruppe gehören oder nicht.

UpDown/Slider/Progress: Liefert die aktuelle Position des Steuerelements.

Tab/DropDownList/ComboBox/ListBox: Liefert den Text des aktuell ausgewählten Listeneintrags/Reiters (oder dessen Position, wenn das Steuerelement die AltSubmit-Eigenschaft hat). Bei einer ComboBox ohne ausgewählten Listeneintrag wird stattdessen der im Eingabefeld enthaltene Text abgerufen. Bei einer Mehrfachauswahl-ListBox werden Listeneinträge mit dem aktuellen Trennzeichen des Fensters voneinander getrennt. Geben Sie das Wort Text im letzten Parameter an, um stattdessen den Text einer DropDownList oder ComboBox zu erhalten.

ListView/TreeView: Diese Steuerelemente werden nicht unterstützt, wenn Unterbefehl leer ist. Verwenden Sie stattdessen die internen ListView- und TreeView-Funktionen.

StatusBar: Liefert nur den Text des ersten Segments.

ActiveX: Liefert ein neues Wrapper-Objekt für die ActiveX-Komponente des Steuerelements.

Pos

Liefert die Position und Größe eines Steuerelements.

GuiControlGet, AusgabeVar, Pos , StrlmntID

Die Position ist relativ zum Clientbereich des GUI-Fensters (das ist der Bereich ohne Titelleiste, Menüleiste und Rahmen). Die Informationen werden in vier Variablen gespeichert, deren Namen alle mit AusgabeVar beginnen. Zum Beispiel:

GuiControlGet, MeinEdit, Pos
MsgBox Die X-Koordinate ist %MeinEditX%. Die Y-Koordinate ist %MeinEditY%. Die Breite ist %MeinEditW%. Die Höhe ist %MeinEditH%.

Um einen Satz von Variablen innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie AusgabeVar als globale Variable, bevor Sie diesen Befehl verwenden (für Assume-Global-Funktionen gilt das Gegenteil). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.

Siehe Beispiel #4 für eine Demonstration.

Focus

Liefert die ClassNN des fokussierten Steuerelements.

GuiControlGet, AusgabeVar, Focus

Ein GUI-Fenster muss aktiv sein, damit eines seiner Steuerelemente den Fokus haben kann, d.h. wenn das Fenster nicht aktiv ist, wird AusgabeVar leer gemacht.

Siehe Beispiel #4 für eine Demonstration.

FocusV [v1.0.43.06+]

Liefert den zugeordneten Variablennamen des fokussierten Steuerelements.

GuiControlGet, AusgabeVar, FocusV

Ein GUI-Fenster muss aktiv sein, damit eines seiner Steuerelemente den Fokus haben kann, d.h. wenn das Fenster nicht aktiv ist, wird AusgabeVar leer gemacht.

Wenn dieses Steuerelement keine zugeordnete Variable hat, wird stattdessen der Text bzw. die Beschriftung des Steuerelements abgerufen, bis zu einem Maximum von 63 Zeichen (dies wird meist verwendet, um zu vermeiden, jeder Schaltfläche einen Variablennamen zu geben).

Enabled

Liefert 1, wenn die Interaktion mit einem Steuerelement erlaubt ist, oder 0, wenn verboten.

GuiControlGet, AusgabeVar, Enabled , StrlmntID

Visible

Liefert 1, wenn ein Steuerelement sichtbar ist, oder 0, wenn versteckt.

GuiControlGet, AusgabeVar, Visible , StrlmntID

Hwnd [v1.0.46.16+]

Liefert das Fensterhandle (HWND) eines Steuerelements.

GuiControlGet, AusgabeVar, Hwnd , StrlmntID

Allerdings ist die Option +HwndAusgabeVar in der Regel der präzisere Ansatz, um das HWND zu erhalten.

Name [v1.1.03+]

Liefert den zugeordneten Variablennamen eines Steuerelements.

GuiControlGet, AusgabeVar, Name , StrlmntID

Wenn das Steuerelement keine zugeordnete Variable hat, wird AusgabeVar leer gemacht.

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird auf 1 gesetzt, wenn das angegebene Fenster/Steuerelement nicht existiert oder ein anderes Problem die Ausführung des Befehls verhindert hat. Andernfalls wird es auf 0 gesetzt.

Bemerkungen

Dieser Befehl ist nur für die Verwendung mit Steuerelementen in einem GUI-Fenster vorgesehen, also einem Fenster, das mit dem Gui-Befehl erstellt wurde. Für Nicht-GUI-Steuerelemente können Sie ControlGet, ControlGetFocus, ControlGetPos, ControlGetText und so weiter verwenden.

Um mit einem anderen Fenster als dem Standardfenster zu arbeiten, fügen Sie dessen Namen oder Nummer (oder in [v1.1.03+] dessen HWND), gefolgt von einem Doppelpunkt, vor dem Unterbefehl ein. Zum Beispiel:

GuiControlGet, MeinEdit, MeineGui:
GuiControlGet, MeinEdit, MeineGui:Pos
GuiControlGet, AusgabeVar, MeineGui:Focus

Dies ist auch erforderlich, wenn StrlmntID die zugeordnete Variable eines Steuerelements ist, da jede Variable für mehrere GUI-Fenster verwendet werden kann. In [v1.1.20+] kann der GUI-Name weggelassen werden, wenn StrlmntID das HWND eines Steuerelements ist.

Ein GUI-Thread ist ein Thread, der durch eine GUI-Aktion gestartet wurde. Eine GUI-Aktion ist z.B. das Auswählen eines Menüpunkts oder das Auslösen eines g-Labels (z.B. durch Drücken einer Schaltfläche).

Der Standardfenstername eines GUI-Threads ist der Name des Fensters, das diesen Thread gestartet hat. Nicht-GUI-Threads verwenden standardmäßig 1.

Gui, GuiControl, ControlGet, ControlGetFocus, ControlGetPos, ControlGetText

Beispiele

Ruft den Text eines Edit-Steuerelements mithilfe einer zugeordneten Variable ab und speichert ihn in dieselbe Variable.

Gui, Add, Edit, vMeinEdit, Das ist ein Test.
Gui, Show
GuiControlGet, MeinEdit
MsgBox %MeinEdit%

Dasselbe wie oben, aber speichert den Text in eine andere Variable.

Gui, Add, Edit, vMeinEdit, Das ist ein Test.
Gui, Show
GuiControlGet, StrlmntInhalt,, MeinEdit
MsgBox %StrlmntInhalt%

Ruft die Beschriftung und den Status eines CheckBox-Steuerelements mittels A_GuiControl ab und speichert die Werte in andere Variablen.

Gui, Add, CheckBox, gStatusMelden, Kontrollkästchen 1
Gui, Add, CheckBox, gStatusMelden, Kontrollkästchen 2
Gui, Show
return

StatusMelden:
GuiControlGet, Beschriftung,, %A_GuiControl%, Text
GuiControlGet, Status,, %A_GuiControl%
MsgBox % Beschriftung " ist " (Status = 0 ? "unmarkiert" : "markiert")
return

Ruft die Position und Größe eines Picture-Steuerelements mittels ClassNN ab und speichert die Werte in die Variablen BildX, BildY, BildW und BildH.

Gui, Add, Picture,, %A_AhkPath%
Gui, Show
GuiControlGet, Bild, Pos, Static1
MsgBox % "x" BildX ", y" BildY ", w" BildW ", h" BildH

Liefert die ClassNN des fokussierten Steuerelements.

Gui, Add, Edit
Gui, Show
GuiControlGet, fokussiertes_Steuerelement, Focus
MsgBox %fokussiertes_Steuerelement%