Führt eine Vielzahl von Änderungen an einem Steuerelement innerhalb eines GUI-Fensters durch.
GuiControl, Unterbefehl, StrlmntID , Wert
Der Name der zugeordneten Variable (falls vorhanden), die ClassNN, der Text, oder in [v1.1.04+] das HWND des Steuerelements. 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.
Geben Sie für Unterbefehl Folgendes an:
Fügt neue Inhalte in ein Steuerelement ein.
GuiControl,, StrlmntID , 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 in [v1.1.23+] ein Handle des neuen Bildes an, das geladen werden soll (siehe Gui Picture, welche Dateitypen unterstützt werden). Direkt vor dem Dateinamen können beliebig viele der folgenden Optionen angegeben werden: *wN (Breite N), *hN (Höhe N) und *IconN (Symbolgruppennummer N in einer DLL- oder EXE-Datei). Das folgende Beispiel lädt das Standardsymbol aus der zweiten Symbolgruppe mit einer Breite von 100 Pixel und einer automatischen Höhe via "Seitenverhältnis beibehalten": 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 verwenden. Wenn *w und *h weggelassen werden, wird die Größe des Bildes an die Größe des Steuerelements angepasst. Beim Laden eines Symbols aus einer ICO-Datei mit mehreren Symbolen hat die Angabe von Breite und Höhe zudem Einfluss darauf, welches Symbol geladen wird. 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 StatusBar wird nur der Text des ersten Segments gesetzt; verwenden Sie SB_SetText() für mehr Flexibilität.
Edit: Jeder Zeilenvorschub (`n) in Wert, dem kein Wagenrücklauf (`r) vorangestellt ist, wird automatisch in ein Wagenrücklauf-Zeilenvorschub-Paar (`r`n) übersetzt, um eine korrekte Darstellung zu gewährleisten. In der Regel sollte das keine Probleme bereiten, weil Gui Submit und GuiControlGet diese Übersetzung automatisch rückgängig machen, indem sie ein Wagenrücklauf-Zeilenvorschub-Paar (`r`n) mit einem Zeilenvorschub (`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. Es werden nur die Modifikatoren ^ (STRG), ! (ALT) und + (UMSCHALT) unterstützt. Weitere Tastennamen finden Sie in der Tastenliste.
CheckBox: Wert kann 0 für unmarkiert, 1 für markiert oder -1 für unbestimmt sein. Andernfalls wird Wert als neuer Text bzw. neue Beschriftung des Steuerelements behandelt. Schauen Sie sich den Text-Unterbefehl an, wie dieses Verhalten überschrieben werden kann.
Radio: Dasselbe wie beim CheckBox-Absatz oben. Wenn allerdings ein Radio-Steuerelement ausgewählt wird, das zu einer Radiogruppe gehört, werden alle anderen Radio-Steuerelemente in der Gruppe automatisch abgewählt. Um ein anderes Radio-Steuerelement innerhalb einer Radiogruppe zu markieren, die nur eine zugeordnete Variable hat, müssen Sie für StrlmntID den Namen/Text des Radio-Steuerelements angeben, wenn diesem 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 aktuelle Datum/Uhrzeit (heute) zu verwenden. Bei DateTime-Steuerelementen kann Wert weggelassen werden, um das Steuerelement ohne vorab ausgewähltes Datum/Uhrzeit anzuzeigen (wenn es mit dieser Option erstellt wurde). Bei MonthCal-Steuerelementen kann ein Datumsbereich angegeben werden, wenn das Steuerelement eine Mehrfachauswahl unterstützt.
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. Zum Beispiel bewirkt +10, dass die Position um 10 Pixel erhöht wird, während +-10 (plus minus zehn) bewirkt, dass die Position um 10 Pixel verringert wird. Wenn die neue Position außerhalb des gültigen Wertebereichs liegt, 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/Tabs 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/Tab im Steuerelement vorab auszuwählen (z.B. Rot|Grün||Blau). Das Trennzeichen zwischen den Feldern kann mit der GUI-Option +Delimiter auf etwas anderes als den Vertikalstrich geändert werden. Zum Beispiel kann es mit Gui +Delimiter`n in einen Zeilenvorschub (`n) oder mit Gui +DelimiterTab in einen Tabulator (`t) geändert werden.
Tab: Zusätzlich zum oben beschriebenen Verhalten sind und bleiben die Untersteuerelemente einer Registerkarte mit ihrer ursprünglichen Registerkartennummer verknüpft, d.h. sie sind nie mit dem Anzeigenamen ihrer Registerkarte verknüpft. Das Umbenennen oder Entfernen einer Registerkarte ändert nicht die Registerkartennummer, zu der die Untersteuerelemente gehören. Wenn zum Beispiel die drei Registerkarten Rot|Grün|Blau vorhanden sind und die zweite Registerkarte mit GuiControl,, MeinTab, |Rot|Blau entfernt wird, werden die ursprünglich mit Grün verknüpften Untersteuerelemente mit Blau verknüpft. Aufgrund dieses Verhaltens ist es ratsam, nur die am Ende befindlichen Registerkarten zu entfernen. Registerkarten, die auf diese Weise entfernt wurden, können später wieder hinzugefügt werden, um ihnen ihre ursprünglichen Steuerelemente zurückzugeben.
ListView/TreeView: Diese Steuerelemente werden nicht unterstützt, wenn Unterbefehl leer ist. Verwenden Sie stattdessen die internen ListView- und TreeView-Funktionen.
Ändert den Text bzw. die Beschriftung eines Steuerelements.
GuiControl, Text, StrlmntID , Wert
Verhält sich wie der leere Unterbefehl, außer bei:
CheckBox/Radio: Wert wird bedingungslos als neuer Text bzw. neue Beschriftung des Steuerelements behandelt, d.h. es kann auch -1, 0 oder 1 als Text angegeben werden.
DateTime: Wert wird als neues Datums-/Zeitformat behandelt, das vom Steuerelement angezeigt werden soll. Wenn Wert weggelassen wird, 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 ein Steuerelement und/oder ändert dessen Größe.
GuiControl, Move, StrlmntID, Optionen
Geben Sie für Optionen einen oder mehrere der folgenden Optionsbuchstaben an, jeweils gefolgt von einer dezimalen Zahl (nicht hexadezimal), jeweils getrennt durch beliebig viele Leer- oder Tabulatorzeichen:
Zum Beispiel x10 y20 w200 h100. Die Zahlen sind in Pixel. Die Koordinaten sind relativ zum Clientbereich des Fensters (das ist der Bereich ohne Titelleiste, Menüleiste und Rahmen).
Siehe Beispiel #4 für mehrere Demonstrationen.
Verschiebt ein Steuerelement und/oder ändert dessen Größe, und zeichnet den vom Steuerelement beanspruchten Bereich neu.
GuiControl, MoveDraw, StrlmntID , Optionen
Schauen Sie sich den Move-Unterbefehl an, um mehr zu erfahren.
Obwohl dieser Unterbefehl bei wiederholtem und schnellem Aufruf zu unerwünschtem Flackern führen kann, ist er in der Lage, fehlerhafte Darstellungen beim Zeichnen bestimmter Steuerelemente wie z.B. 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 ein Steuerelement.
GuiControl, Focus, StrlmntID
Um den gewünschten Effekt zu erzielen, darf das Fenster weder minimiert noch versteckt sein.
Wenn ein Steuerelement durch eine Benutzereingabe fokussiert wird, z.B. durch Drücken von Tab, wendet der Dialogmanager zusätzliche Effekte an, die nicht von diesem Unterbefehl angewendet werden. Siehe ControlFocus für Details. AutoHotkey v2 ersetzt diesen Unterbefehl mit einer Methode, die die zusätzlichen Effekte anwendet.
Siehe Beispiel #4 für eine Demonstration.
Verbietet die Interaktion mit einem Steuerelement.
GuiControl, Disable, StrlmntID
Bei Tab-Steuerelementen verbietet dieser Unterbefehl zudem die Interaktion mit den Untersteuerelementen.
Direkt nach dem Wort Disable kann optional eine 0 oder 1 angegeben werden. Eine 0 bewirkt eine Umkehrung des Effekts. Zum Beispiel würden Disable und Disable%VarMitEins% die Interaktion mit dem Steuerelement verbieten, während Disable%VarMitNull% diese erlauben würde.
Erlaubt die Interaktion mit einem Steuerelement.
GuiControl, Enable, StrlmntID
Bei Tab-Steuerelementen erlaubt dieser Unterbefehl zudem die Interaktion mit den Untersteuerelementen. Beachten Sie aber, dass jedes Untersteuerelement, das explizit mit dem Disable-Unterbefehl deaktiviert wurde, sich diese Einstellung merkt und demzufolge auch nach Reaktivierung des Tab-Steuerelements deaktiviert bleibt.
Direkt nach dem Wort Enable kann optional eine 0 oder 1 angegeben werden. Eine 0 bewirkt eine Umkehrung des Effekts. Zum Beispiel würden Enable und Enable%VarMitEins% die Interaktion mit dem Steuerelement erlauben, während Enable%VarMitNull% diese verbieten würde.
Versteckt ein Steuerelement.
GuiControl, Hide, StrlmntID
Bei Tab-Steuerelementen versteckt dieser Unterbefehl zudem alle Untersteuerelemente.
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 angegeben werden. Eine 0 bewirkt eine Umkehrung des Effekts. Zum Beispiel würden Hide und Hide%VarMitEins% das Steuerelement verstecken, während Hide%VarMitNull% es sichtbar machen würde.
Zeigt ein Steuerelement, falls es zuvor versteckt wurde.
GuiControl, Show, StrlmntID
Bei Tab-Steuerelementen macht dieser Unterbefehl zudem alle Untersteuerelemente sichtbar.
Direkt nach dem Wort Show kann optional eine 0 oder 1 angegeben werden. Eine 0 bewirkt eine Umkehrung des Effekts. Zum Beispiel würden Show und Show%VarMitEins% das Steuerelement sichtbar machen, während Show%VarMitNull% es verstecken würde.
Selektiert ein Element in einem Multi-Element-Steuerelement (ListBox, DropDownList, ComboBox oder Tab).
GuiControl, Choose, StrlmntID, N
Geben Sie für N die Positionsnummer an. Das erste Element ist 1, das zweite 2 und so weiter. Wenn N kein Integer ist, wird automatisch der ChooseString-Unterbefehl verwendet. [v1.1.06+]: Wenn N 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.
Soll zusätzlich ein Abschlussereignis ausgelöst werden (ein Doppelklick im Falle von ListBox), fügen Sie am Anfang statt einem zwei Vertikalstriche ein (Tab-Steuerelemente unterstützen das nicht).
Um alle Listeneinträge in einer Mehrfachauswahl-ListBox aus- oder abzuwählen, gehen Sie wie folgt vor:
Gui +LastFound ; Verhindert, dass unten FensterTitel angegeben werden muss.
PostMessage, 0x0185, 1, -1, ListBox1 ; Alle Listeneinträge auswählen. 0x0185 ist LB_SETSEL.
PostMessage, 0x0185, 0, -1, ListBox1 ; Alle Listeneinträge abwählen.
GuiControl, Choose, ListBox1, 0 ; Alle Listeneinträge abwählen, benötigt [v1.1.06+].
Selektiert per Zeichenkette ein Element in einem Multi-Element-Steuerelement (ListBox, DropDownList, ComboBox oder Tab).
GuiControl, ChooseString, StrlmntID, Zeichenkette
Die Suche endet beim ersten Element, dessen Text mit der angegebenen Zeichenkette beginnt. Mit anderen Worten, wenn Zeichenkette mit mehreren Elementen übereinstimmt, wird das erste ausgewählt.
Die Suche erfolgt nicht Groß-/Kleinschreibung-sensitiv. Wenn ein Multi-Element-Steuerelement z.B. das Element "UNIX-Text" enthält, genügt die Angabe des Wortes unix (kleingeschrieben), um dieses Element auszuwählen.
Die Präfixe "|" und "||" werden ebenfalls unterstützt (schauen Sie sich den Choose-Unterbefehl an, um mehr zu erfahren).
Wendet die aktuellen Schrifteinstellungen eines Fensters auf ein Steuerelement an.
GuiControl, Font, StrlmntID
Siehe Beispiel #6 für eine Demonstration.
Fügt steuerelementspezifische oder allgemeine Optionen und Styles hinzu oder entfernt sie.
GuiControl, +/-Option1 +/-Option2 ..., StrlmntID , Wert
Das folgende Beispiel aktiviert die AltSubmit-Option und entfernt das g-Label des Steuerelements:
GuiControl, +AltSubmit -g, MeineListBox
Das nächste Beispiel macht die OK-Schaltfläche zur neuen Standardschaltfläche:
GuiControl, +Default, OK
In der Regel werden alle gültigen Optionen und Styles erkannt. Das bedeutet jedoch nicht, dass sie alle nach der Erstellung eines Steuerelements angewendet oder entfernt werden. Einige Styles können nicht nachträglich geändert werden. Für die Positionierungs- und Größenoptionen können Sie stattdessen GuiControl Move verwenden, optional mit GuiControlGet Pos für relative Anpassungen.
ErrorLevel wird auf 0 gesetzt, wenn mindestens eine der angegebenen Änderungen erfolgreich angewendet wurde. Andernfalls 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 in den folgenden zwei Beispielen gezeigt. Andere Ausdrücke, die Objekte zurückgeben, werden zurzeit nicht unterstützt.
GuiControl +g, StrlmntID, %FunkObj% GuiControl +g, StrlmntID, % 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. Andernfalls wird es auf 0 gesetzt.
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 Control, ControlFocus, ControlMove, ControlSetText 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:
GuiControl, MeineGui:Show, MeinButton GuiControl, MeineGui:, MeineListBox, Element1|Element2
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.
Es gibt keinen Unterbefehl namens "Delete", um ein Steuerelement zu löschen. Verwenden Sie alternativ die Unterbefehle Hide und/oder Disable oder zerstören Sie das gesamte Fenster mit Gui Destroy und erstellen Sie es neu.
Gui, GuiControlGet, GUI-Steuerelemente, Control, ControlFocus, ControlMove, ControlSetText
Ersetzt die aktuelle Liste eines ListBox-Steuerelements mithilfe einer zugeordneten Variable.
Gui, Add, ListBox, vMeineListBox, Schwarz|Weiß Gui, Show Sleep 1000 ; Warten zu Demonstrationszwecken. GuiControl,, MeineListBox, |Rot|Grün|Blau
Fügt neuen Text in ein Edit-Steuerelement mittels ClassNN ein.
Gui, Add, Edit, r2 w100, Alte Textzeile. Gui, Show Sleep 1000 ; Warten zu Demonstrationszwecken. GuiControl,, Edit1, Neue Textzeile 1.`nNeue Textzeile 2.
Markiert ein Radio-Steuerelement, während alle anderen in der Gruppe automatisch entmarkiert werden, mithilfe einer zugeordneten Variable.
Gui, Add, Radio, vMeinRadio1 Checked, Optionsfeld 1 Gui, Add, Radio, vMeinRadio2 Checked, Optionsfeld 2 Gui, Add, Radio, vMeinRadio3 Checked, Optionsfeld 3 Gui, Show Sleep 1000 ; Warten zu Demonstrationszwecken. GuiControl,, MeinRadio2, 1
Beispiele für den Move-Unterbefehl.
Verschiebt ein Button-Steuerelement an eine neue Position mithilfe seines Textes.
Gui, Add, Button,, OK Gui, Show, w300 h300 Sleep 1000 ; Warten zu Demonstrationszwecken. GuiControl, Move, OK, x100 y200
Verschiebt und ändert die Größe eines Edit-Steuerelements relativ zu dessen aktueller Position und Größe mithilfe einer zugeordneten Variable.
Gui, Add, Edit, vMeinEdit Gui, Show, w300 h300 Sleep 1000 ; Warten zu Demonstrationszwecken. GuiControlGet, Var, Pos, MeinEdit GuiControl, Move, MeinEdit, % "x" VarX+10 "y" VarY+5 "w" VarW*2 "h" VarH*1.5
Setzt den Tastaturfokus auf ein Edit-Steuerelement mithilfe einer zugeordneten Variable.
Gui, Add, Text, Section, Vorname: Gui, Add, Text,, Nachname: Gui, Add, Edit, ys vVorname Gui, Add, Edit, vNachname Gui, Show Sleep 1000 ; Warten zu Demonstrationszwecken. GuiControl, Focus, Nachname
Ändert die Schriftart und Textfarbe eines Text-Steuerelements mithilfe einer zugeordneten Variable.
Gui, Font, s14 Gui, Add, Text,, Das ist ein Test. Gui, Add, Text, vMeinText, Das ist ein Test. Gui, Add, Text,, Das ist ein Test. Gui, Show Sleep 1000 ; Warten zu Demonstrationszwecken. Gui, Font, cRed, Times New Roman ; Neue Standardschrift für das Fenster setzen. GuiControl, Font, MeinText ; Obige Schrifteinstellungen auf MeinText anwenden.