Führt eine Vielzahl von Änderungen an einem Steuerelement innerhalb eines GUI-Fensters durch.
GuiControl, Unterbefehl, SteuerelementID , Wert
SteuerelementID kann der Name der zugeordneten Variable eines Steuerelements sein, sofern vorhanden (diese Methode hat Vorrang vor der im nächsten Abschnitt beschriebenen Methode). In der Regel ist es sinnvoll, jedem Steuerelement, das später via GuiControl oder GuiControlGet angesteuert wird, eine Variable zuzuordnen (auch nicht-eingabefähige wie GroupBox oder Text).
Ansonsten kann SteuerelementID entweder die ClassNN-Bezeichnung (Klassenname und Instanznummer des Steuerelements) oder der Text des Steuerelements sein, die beide mit dem internen Tool Window Spy ermittelt werden können. Verwendet man Text, ist das Übereinstimmungsverhalten abhängig von SetTitleMatchMode.
Hinweis: Der Dateiname eines Picture-Steuerelements (der zum Zeitpunkt seiner Erstellung angegeben wurde) kann auch als SteuerelementID verwendet werden.
[v1.1.04+]: SteuerelementID kann die HWND-Nummer (eindeutige ID) eines Steuerelements sein.
Wenn sich das Steuerelement nicht auf der Standard-GUI befindet, muss zudem der Name oder die HWND-Nummer (eindeutige ID) der GUI angegeben werden -- außer in [v1.1.20+], wenn SteuerelementID eine HWND-Nummer ist, da jede HWND-Nummer einzigartig ist. Weitere Informationen finden Sie unter Bemerkungen.
Geben Sie für Unterbefehl Folgendes an:
Fügt neue Inhalte in das Steuerelement ein.
GuiControl,, SteuerelementID , Wert
Lassen Sie Unterbefehl leer, um neue Inhalte via Wert in das Steuerelement einzufügen. Konkret heißt das:
Picture: Geben Sie für Wert den Dateinamen (oder Handle) des neuen Bildes an, das geladen werden soll (siehe Gui Picture, welche Dateitypen unterstützt werden). Direkt vor dem Dateinamen können Null oder mehr der folgenden Optionen angegeben werden: *wN
(Breite N), *hN
(Höhe N) und *IconN
(Symbolgruppennummer N in einer DLL- oder EXE-Datei). Im folgenden Beispiel wird das Standardsymbol aus der zweiten Symbolgruppe mit einer Breite von 100 Pixel und einer automatischen Höhe via "Seitenverhältnis beibehalten" geladen: GuiControl,, MeinBild, *icon2 *w100 *h-1 C:\Meine Anwendung.exe
. Geben Sie *w0 *h0
an, um die aktuelle Breite und Höhe des Bildes zu nutzen. Lässt man *w
und *h
weg, wird die Größe des Bildes an die Größe des Steuerelements angepasst. Lädt man ein Symbol aus einer mit mehreren Symbolen bestückten ICO-Datei, bestimmt die Angabe einer Breite und Höhe zudem, welches Symbol geladen werden soll.
Hinweis: Verwenden Sie nur ein Leer- oder Tabulatorzeichen zwischen der letzten Option und dem Dateinamen selbst; alle anderen Leer- oder Tabulatorzeichen werden als Teil des Dateinamens interpretiert.
Text/Button/GroupBox/StatusBar/Link: Geben Sie für Wert den neuen Text des Steuerelements an. Da sich hierbei die Größe des Steuerelements nicht automatisch erweitert, muss so etwas wie GuiControl, Move, MeinText, W300
verwendet werden, um das Steuerelement breiter zu machen. Bei einer StatusBar wird nur der Text des ersten Bereiches gesetzt (nutzen Sie SB_SetText() für mehr Flexibilität).
Edit: Jedes LF-Zeichen (`n) in Wert, das kein CR-Zeichen (`r) davor hat, wird automatisch in CR+LF (`r`n) umgewandelt, um eine korrekte Darstellung zu gewährleisten. In der Regel sollte das keine Probleme bereiten, weil Gui Submit
und GuiControlGet AusgabeVar
diese Umwandlung automatisch rückgängig machen, indem sie CR+LF mit LF (`n) ersetzen.
Hotkey: Geben Sie für Wert eine Tastenkombination in Form von Modifikatorsymbolen und einem Tastennamen an, die im Steuerelement angezeigt werden soll, oder lassen Sie diesen Parameter leer, um den Inhalt des Steuerelements zu löschen. Beispiele: ^!c
, ^Numpad1
, +Home
. Die einzigen unterstützten Modifikatoren sind ^ (STRG), ! (ALT) und + (UMSCHALT). Weitere verfügbare Tastennamen finden Sie in der Tastenliste.
Checkbox: Geben Sie für Wert eine 0 für nicht-abgehakt, eine 1 für abgehakt oder -1 für unbestimmt an. Ansonsten wird Wert als neuer Text bzw. Beschriftung des Steuerelements behandelt. Schauen Sie sich den Text-Unterbefehl weiter unten an, wie man dieses Verhalten überschreiben kann.
Radio: Das Gleiche wie Checkbox. Wenn der Radio-Button allerdings eingeschaltet wird und Mitglied einer Multi-Radio-Gruppe ist, werden die anderen Radio-Buttons in der Gruppe automatisch ausgeschaltet. Um einen neuen Button innerhalb einer Multi-Radio-Gruppe einzuschalten, wo nur eine zugeordnete Variable verfügbar ist, müssen Sie für SteuerelementID den Namen/Text des Buttons angeben, wenn diesem Button nicht genau diese Variable zugeordnet ist.
DateTime/MonthCal: Geben Sie für Wert einen Zeitstempel im YYYYMMDDHH24MISS-Format an. Geben Sie %A_Now%
an, um das heutige Datum inklusive Uhrzeit zu verwenden. Bei DateTime-Steuerelementen kann Wert weggelassen werden, um das Steuerelement anzuzeigen, ohne dass ein Datum oder eine Uhrzeit vorab ausgewählt ist (wenn es mit dieser Option erstellt wurde). Bei MonthCal-Steuerelementen kann ein Bereich angegeben werden, wenn das Steuerelement fähig zur Mehrfachauswahl ist.
UpDown/Slider/Progress: Geben Sie für Wert die neue Position des Steuerelements an. Wenn das erste Zeichen von Wert ein Pluszeichen ist, wird die Zahl als Offset von der aktuellen Position behandelt. +10
beispielsweise erhöht die Position um 10 Pixel, während +-10
(plus minus zehn) die Position um 10 Pixel verringert. Liegt die neue Position außerhalb des gültigen Bereichs, wird das Steuerelement auf den nächstmöglichen gültigen Wert gesetzt.
Tab/DropDownList/ComboBox/ListBox: Geben Sie für Wert eine via Vertikalstrich getrennte Liste an, um neue Listeneinträge an das Ende der Liste des Steuerelements anzufügen. Fügen Sie einen Vertikalstrich als erstes Zeichen ein, um die Liste stattdessen zu ersetzen bzw. zu überschreiben (z. B. |Rot|Grün|Blau
). Geben Sie einen einzelnen Vertikalstrich (|) an, um das Steuerelement leer zu machen. Fügen Sie zwei Vertikalstriche an, um einen Listeneintrag im Steuerelement vorab auszuwählen (z. B. Rot|Grün||Blau
). Das Trennzeichen zwischen den Feldern muss nicht zwingend ein Vertikalstrich sein. Mit Gui +Delimiter`n
beispielsweise kann stattdessen ein Zeilenumbruchszeichen als Trennzeichen verwendet werden oder mit Gui +DelimiterTab
stattdessen ein Tabulatorzeichen (`t) verwendet werden.
Tab-Steuerelemente: Zusätzlich zu dem im obigen Abschnitt beschriebenen Verhalten bleiben die in einem Tab enthaltenen Steuerelemente mit ihrer ursprünglichen Tabnummer verbunden; das heißt, dass sie nie dem tatsächlichen Anzeigenamen ihres Tabs zugeordnet werden. Das Umbenennen oder Entfernen eines Tabs ändert nicht die Tabnummer, zu der die darin enthaltenen Steuerelemente gehören. Wenn zum Beispiel die drei Tabs "Rot|Grün|Blau" vorhanden sind und der zweite Tab mit GuiControl,, MeinTab, |Rot|Blau
entfernt wird, werden die ursprünglich mit Grün verknüpften Untersteuerelemente mit Blau verknüpft. Infolgedessen sollten grundsätzlich nur Tabs am Ende einer Liste entfernt werden. Auf diese Weise entfernte Tabs können später wieder hinzugefügt werden, um ihnen ihre ursprünglichen Steuerelemente zurückzugeben.
ListView und TreeView: Diese Steuerelemente werden nicht unterstützt, wenn Unterbefehl leer ist. Verwenden Sie stattdessen die internen ListView- und TreeView-Funktionen.
Ändert den Text bzw. Beschriftung des Steuerelements.
GuiControl, Text, SteuerelementID , Wert
Verhält sich genauso wie der leere Unterbefehl, außer bei:
Checkbox/Radio: Wert wird bedingungslos als neuer Text bzw. Beschriftung des Steuerelements behandelt; das heißt, dass auch -1, 0 oder 1 als dessen Text angegeben werden kann.
DateTime: Wert wird als neues Datum/Zeit-Format behandelt, das vom Steuerelement angezeigt werden soll. Lässt man Wert weg, wird jedes benutzerdefinierte Format entfernt und das kurze Datumsformat in Kraft gesetzt.
ComboBox: Wert wird als Text behandelt, der direkt in das Eingabefeld der ComboBox eingefügt werden soll.
Verschiebt das Steuerelement und/oder ändert dessen Größe.
GuiControl, Move, SteuerelementID, Optionen
Geben Sie einen oder mehrere der folgenden Optionsbuchstaben in Optionen an: X (die X-Koordinate relativ zum Clientbereich des GUI-Fensters, das der Bereich ohne Titelleiste, Menüleiste und Rahmen ist); Y (die Y-Koordinate), W (Breite), H (Höhe). Jede Zahl muss im dezimalen Format sein. Zum Beispiel:
GuiControl, Move, MeinEdit, x10 y20 w200 h100 GuiControl, Move, MeinEdit, % "x" VarX+10 "y" VarY+5 "w" VarW*2 "h" VarH*1.5 ; Erzwingt einen Ausdruck via "% ".
Verschiebt das Steuerelement und/oder ändert dessen Größe, und zeichnet den vom Steuerelement beanspruchten Bereich neu.
GuiControl, MoveDraw, SteuerelementID , Optionen
Schauen Sie sich den Move-Unterbefehl oben an, um mehr zu erfahren. Obwohl dieser Unterbefehl bei wiederholtem und schnellem Aufruf ein ungewolltes Flackern erzeugen kann, ist er in der Lage, fehlerhafte Darstellungen beim Zeichnen von bestimmten Steuerelementen wie GroupBox zu verhindern. [v1.0.48.04+]: Der letzte Parameter kann weggelassen werden, um das Steuerelement ohne Verschieben oder Größenänderung neu zu zeichnen.
Setzt den Tastaturfokus auf das Steuerelement.
GuiControl, Focus, SteuerelementID
Um die gewünschte Wirkung zu erzielen, darf das Fenster weder minimiert noch versteckt sein.
Wenn ein Steuerelement durch eine Benutzereingabe fokussiert wird (z. B. durch Drücken der Tabulatortaste), werden zusätzliche Effekte angewendet, die nicht von diesem Unterbefehl stammen. Einzelheiten finden Sie unter ControlFocus. AutoHotkey v2 ersetzt diesen Unterbefehl mit einer Methode, die die zusätzlichen Effekte anwendet.
Deaktiviert die Interaktion mit dem Steuerelement.
GuiControl, Disable, SteuerelementID
Bei Tab-Steuerelementen wird dieser Unterbefehl zudem die Interaktion mit allen darin enthaltenen Steuerelementen deaktivieren. Direkt nach dem Wort Disable kann optional eine 0 oder 1 erfolgen. Eine 0 bewirkt, dass die Wirkung umgekehrt wird. Disable
und Disable%VarMitEins%
beispielsweise deaktivieren die Interaktion mit dem Steuerelement, während Disable%VarMitNull%
diese aktiviert.
Aktiviert die Interaktion mit dem Steuerelement.
GuiControl, Enable, SteuerelementID
Bei Tab-Steuerelementen wird dieser Unterbefehl zudem die Interaktion mit allen darin enthaltenen Steuerelementen aktivieren. Beachten Sie aber, dass jedes darin enthaltene Steuerelement, das explizit via Disable-Unterbefehl deaktiviert wurde, sich diese Einstellung merkt und dementsprechend auch nach Reaktivierung des Tab-Steuerelements deaktiviert bleibt. Direkt nach dem Wort Enable kann optional eine 0 oder 1 erfolgen. Eine 0 bewirkt, dass die Wirkung umgekehrt wird. Enable
und Enable%VarMitEins%
beispielsweise aktivieren die Interaktion mit dem Steuerelement, während Enable%VarMitNull%
diese deaktiviert.
Versteckt das Steuerelement.
GuiControl, Hide, SteuerelementID
Bei Tab-Steuerelementen wird dieser Unterbefehl zudem alle darin enthaltenen Steuerelemente verstecken. Mit dem Disable-Unterbefehl kann zusätzlich der Tastaturkurzbefehl eines Steuerelements (unterstrichene Buchstabe) deaktiviert werden. Direkt nach dem Wort Hide kann optional eine 0 oder 1 erfolgen. Eine 0 bewirkt, dass die Wirkung umgekehrt wird. Hide
und Hide%VarMitEins%
beispielsweise verstecken das Steuerelement, während Hide%VarMitNull%
das Steuerelement sichtbar macht.
Macht das Steuerelement sichtbar.
GuiControl, Show, SteuerelementID
Bei Tab-Steuerelementen wird dieser Unterbefehl zudem alle darin enthaltenen Steuerelemente sichtbar machen. Direkt nach dem Wort Show kann optional eine 0 oder 1 erfolgen. Eine 0 bewirkt, dass die Wirkung umgekehrt wird. Show
und Show%VarMitEins%
beispielsweise machen das Steuerelement sichtbar, während Show%VarMitNull%
das Steuerelement versteckt.
Noch nicht implementiert: Dieser Unterbefehl ist noch nicht verfügbar. Verwenden Sie als Alternative die Unterbefehle Hide und/oder Disable (siehe oben) oder zerstören Sie das komplette Fenster via Gui Destroy und erstellen Sie es neu.
Wählt den N-ten Listeneintrag/Tab in einer ListBox, DropDownList, ComboBox oder einem Tab-Steuerelement aus.
GuiControl, Choose, SteuerelementID, N
Geben Sie für N die Positionsnummer eines Listeneintrags an; also 1 für den ersten Listeneintrag, 2 für den Zweiten, und so weiter. Wenn N kein Integer ist, wird stattdessen der unten beschriebene ChooseString-Unterbefehl angewendet. [v1.1.06+]: Wenn N eine 0 ist, wird die aktuelle Auswahl der ListBox, DropDownList oder ComboBox entfernt.
Im Gegensatz zu Control Choose wird dieser Unterbefehl kein g-Label auslösen, das dem Steuerelement zugeordnet ist, es sei denn, N beginnt mit einem Vertikalstrich (selbst dann wird das g-Label nur ausgelöst, wenn die neue Auswahl von der alten abweicht, zumindest bei Tab-Steuerelementen). Zum Beispiel: GuiControl, Choose, MeineListBox, |3
.
Fügen Sie am Anfang zwei Vertikalstriche anstelle von einem ein, um zusätzlich ein Abschlussereignis (ein Doppelklick im Falle einer ListBox) auslösen zu lassen (Tab-Steuerelemente unterstützen das nicht).
Das folgende Beispiel zeigt, wie alle Listeneinträge in einer Mehrfachauswahl-ListBox aus- oder abgewählt werden können:
Gui +LastFound ; Verhindert, dass unten FensterTitel angegeben werden muss.
PostMessage, 0x0185, 1, -1, ListBox1 ; Wählt alle Listeneinträge aus. 0x0185 ist LB_SETSEL.
PostMessage, 0x0185, 0, -1, ListBox1 ; Wählt alle Listeneinträge ab.
GuiControl, Choose, ListBox1, 0 ; Wählt alle Listeneinträge ab [benötigt v1.1.06+].
Wählt in einer ListBox, DropDownList, ComboBox oder einem Tab-Steuerelement einen Listeneintrag/Tab aus, dessen Name mit Zeichenkette beginnt.
GuiControl, ChooseString, SteuerelementID, Zeichenkette
Die Suche ist nicht Groß-/Kleinschreibung-sensitiv. Wenn ein Steuerelement beispielsweise den Listeneintrag/Tab "UNIX-Text" enthält, reicht die Angabe von GuiControl, ChooseString, SteuerelementID, unix
aus, um diesen Listeneintrag/Tab auszuwählen. Die Präfixe "|" und "||" werden ebenfalls unterstützt (schauen Sie sich den Choose-Unterbefehl oben an, um mehr zu erfahren).
Ändert Schriftart, Schriftgröße, Schriftstil und/oder Schriftfarbe des Steuerelements.
GuiControl, Font, SteuerelementID
Zum Beispiel:
Gui, Font, s18 cRed Bold, Verdana ; Falls gewünscht, können Sie eine Zeile wie diese verwenden, um eine neue Standardschrift für das Fenster zu setzen. GuiControl, Font, MeinEdit ; Setzt die obere Schrift für ein Steuerelement in Kraft.
Fügt verschiedene steuerelementspezifische oder allgemeine Optionen und Styles hinzu, oder entfernt sie.
GuiControl, +/-Option1 +/-Option2 ..., SteuerelementID , Wert
Im folgenden Beispiel wird die AltSubmit-Option aktiviert und das g-Label des Steuerelements entfernt:
GuiControl, +AltSubmit -g, MeineListBox
Im nächsten Beispiel wird die OK-Schaltfläche zur neuen Standardschaltfläche gemacht:
GuiControl, +Default, OK
Obwohl auch Styles und erweiterte Styles erkannt werden, können einige von ihnen nicht angewendet oder entfernt werden, nachdem ein Steuerelement erstellt wurde. ErrorLevel wird auf 0 gesetzt, wenn mindestens eine der angegebenen Änderungen erfolgreich angewendet wurde. Ansonsten wird es auf 1 gesetzt, um zu kennzeichnen, dass keine der Änderungen angewendet werden konnte. Eine erfolgreich angewendete Änderung kann immer noch vom Steuerelement selbst ignoriert werden.
[v1.1.20+]: Um ein Funktionsobjekt zum Behandeln von Ereignissen des Steuerelements zu setzen, muss Wert eine einzelne Variablenreferenz sein, wie es in den folgenden beiden Beispielen gezeigt wird. Andere Ausdrücke, die Objekte zurückgeben, werden zurzeit nicht unterstützt.
GuiControl +g, SteuerelementID, %FunkObj% GuiControl +g, SteuerelementID, % FunkObj
[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. Ansonsten wird es auf 0 gesetzt.
Um anstelle des Standardfensters mit einem anderen Fenster zu agieren, fügen Sie dessen Namen oder Nummer (oder [in v1.1.03+] dessen HWND), gefolgt von einem Doppelpunkt, vor dem Unterbefehl ein. Zum Beispiel:
GuiControl, MeineGui:Show, MeinButton GuiControl, MeineGui:, MeineListBox, Element1|Element2
Dies ist auch dann erforderlich, wenn SteuerelementID 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 SteuerelementID die HWND-Nummer (eindeutige ID) eines Steuerelements ist.
Ein GUI-Thread ist laut Definition jeder Thread, den eine GUI-Aktion gestartet hat. Zu den GUI-Aktionen gehört beispielsweise 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.
Fügt einen neuen Text in das Edit-Steuerelement ein.
GuiControl,, MeinEdit, Neue Textzeile 1.`nNeue Textzeile 2.