Erstellt und verwaltet Fenster und Steuerelemente. Solche Fenster können zur Dateneingabe oder als individuelle Benutzerschnittstellen verwendet werden.
Gui, Unterbefehl , Wert1, Wert2, Wert3
Die Parameter Unterbefehl, Wert1, Wert2 und Wert3 sind voneinander abhängig und können wie folgt verwendet werden.
Geben Sie für Unterbefehl Folgendes an:
Erstellt ein neues Fenster und macht es zum Standardfenster für den aktuellen Thread.
Gui, New , Optionen, Titel Gui, GuiName:New , Optionen, Titel
Wenn GuiName angegeben ist, wird eine neue GUI erstellt, wobei eine existierende GUI mit diesem Namen zerstört wird. Andernfalls wird eine neue GUI erstellt, die weder benannt noch nummeriert ist.
Optionen kann beliebig viele Optionen enthalten, die vom Haupt-GUI-Befehl unterstützt werden.
Titel kann weggelassen werden, um den Dateinamen des Skripts zu verwenden.
Nachteile und Vorbehalte:
Gui New
wird in der Regel nicht benötigt, da in den meisten Fällen das Fenster bei Bedarf automatisch erstellt wird.Gui, %GuiHwnd%:Default
, um dieses Fenster zum Standardfenster für nachfolgende Gui-Befehle zu machen.Vorteile:
Gui New
stellt sicher, dass eine neue GUI erstellt wird und keine bereits vorhandenen GUIs modifiziert werden. Eventuell erhöht dieser Unterbefehl auch die Chance, dass andere Personen (oder später der Autor selbst) den Zweck des Skripts besser verstehen.Gui New
verhindert, dass GUIs mit eindeutigen Namen oder Nummern versehen werden müssen. Dieser Unterbefehl ist besonders nützlich, wenn das Skript mehr als eine GUI erstellen muss oder in andere Skripte inkludiert werden soll.Wenn kein Name angegeben ist, gilt folgendes:
Hinweis: Früher vor [v1.1.08] setzte dieser Unterbefehl kein Standard-GUI-Fenster, wenn ein Name angegeben war.
Fügt ein Steuerelement zum GUI-Fenster hinzu (und erstellt vorher das GUI-Fenster, falls nötig).
Gui, Add, Steuerelement , Optionen, Text
Steuerelement kann folgendes sein: ActiveX, Button, CheckBox, ComboBox, Custom, DateTime, DropDownList (oder DDL), Edit, GroupBox, Hotkey, Link, ListBox, ListView, MonthCal, Picture (oder Pic), Progress, Radio, Slider, StatusBar, Tab, Tab2, Tab3, Text, TreeView, UpDown
Optionen ist eine Zeichenkette aus beliebig vielen Optionen und Styles, die jeweils durch mindestens ein Leer- oder Tabulatorzeichen voneinander getrennt sind. Die Optionen werden im Abschnitt Optionen und Styles für ein Steuerelement beschrieben.
Zum Beispiel:
Gui, Add, Text,, Bitte tragen Sie Ihren Namen ein: Gui, Add, Edit, vName Gui, Show
Sofern in Optionen nicht anders angegeben, bewirkt dieser Unterbefehl, dass das Fenster sichtbar gemacht, entminimiert (falls nötig), aktiviert und dessen Fenstertitel gesetzt wird.
Gui, Show , Optionen, Titel
Wenn Titel weggelassen wird, wird der zuvor gesetzte Titel verwendet (wenn es keinen gibt, wird der Dateiname des Skripts verwendet).
Die unteren Optionen X, Y, W und H können weggelassen werden, um die zuvor gesetzte Größe und Position des Fensters zu verwenden. Wenn es keine zuvor gesetzte Position gibt, wird das Fenster automatisch auf dem Bildschirm zentriert, je nachdem, ob die unten erwähnten Optionen X und Y fehlen. Wenn es keine zuvor gesetzte Größe gibt, wird die Fenstergröße automatisch an die Größe und Position aller darin enthaltenen Steuerelemente angepasst.
Für Optionen können beliebig viele der folgenden Optionen angegeben werden, die jeweils durch mindestens ein Leer- oder Tabulatorzeichen voneinander getrennt sind (jede Zahl muss dezimal sein, nicht hexadezimal):
Wn: Geben Sie für n die Breite (in Pixel) des Clientbereichs an (das ist der Fensterbereich ohne Rahmen, Titelleiste und Menüleiste).
Hn: Geben Sie für n die Höhe (in Pixel) des Clientbereichs an.
Xn: Geben Sie für n die X-Position des Fensters auf dem Bildschirm an (in Pixel). Position 0 ist die erste linke sichtbare Pixelspalte auf dem Bildschirm.
Yn: Geben Sie für n die Y-Position des Fensters auf dem Bildschirm an (in Pixel). Position 0 ist die erste obere sichtbare Pixelzeile auf dem Bildschirm.
Center: Zentriert das Fenster horizontal und vertikal auf dem Bildschirm.
xCenter: Zentriert das Fenster horizontal auf dem Bildschirm. Zum Beispiel: Gui, Show, xCenter y0
.
yCenter: Zentriert das Fenster vertikal auf dem Bildschirm.
AutoSize: Passt die Fenstergröße automatisch an die Größe und Position aller sichtbaren Steuerelemente im Fenster an. Diese Option ist besonders nützlich, wenn neue Steuerelemente hinzugefügt werden, oder wenn bereits vorhandene Steuerelemente größer/kleiner, sichtbar oder unsichtbar gemacht werden. Zum Beispiel: Gui, Show, AutoSize Center
.
Minimize: Minimiert das Fenster und aktiviert das darunter liegende Fenster.
Maximize: Maximiert und aktiviert das Fenster.
Restore: Entminimiert oder entmaximiert das Fenster, falls nötig. Zusätzlich wird das Fenster sichtbar gemacht und aktiviert, falls nötig.
NoActivate: Entminimiert oder entmaximiert das Fenster, falls nötig. Zusätzlich wird das Fenster sichtbar gemacht, ohne es zu aktivieren.
NA: Macht das Fenster sichtbar, ohne es zu aktivieren. Wenn das Fenster minimiert ist, bleibt es minimiert, kann aber in der Z-Rangfolge aufsteigen (die aktuelle Rangfolge kann im Alt-Tab-Fenster eingesehen werden). Wenn das Fenster zuvor versteckt war, bewirkt diese Option, dass es über dem aktiven Fenster erscheint, obwohl das aktive Fenster nicht deaktiviert ist.
Hide: Versteckt das Fenster und aktiviert das darunter liegende Fenster. Funktionsgemäß ist diese Option identisch mit Gui Cancel, ermöglicht es aber, ein verstecktes Fenster zu verschieben, größer/kleiner zu machen oder neu zu betiteln, ohne es sichtbar zu machen. Zum Beispiel: Gui, Show, Hide x55 y66 w300 h200, Neuer Titel
.
Speichert den Inhalt der Steuerelemente in ihre zugeordneten Variablen (falls vorhanden) und versteckt das Fenster (mit NoHide kann das Verstecken verhindert werden).
Gui, Submit , NoHide
Steuerelemente, die mehrere Ausgabefelder erzeugen, z.B. eine Mehrfachauswahl-ListBox, verwenden das aktuelle Trennzeichen des Fensters, um diese voneinander zu trennen. Wenn das Fenster nicht existiert (z.B. weil es via Gui Destroy zerstört wurde), ist dieser Unterbefehl wirkungslos.
Versteckt das Fenster, ohne den Inhalt der Steuerelemente in ihre zugeordneten Variablen zu speichern.
Gui, Cancel Gui, Hide
Wenn das Fenster nicht existiert (z.B. weil es via Gui Destroy zerstört wurde), ist dieser Unterbefehl wirkungslos.
Entfernt das Fenster (falls vorhanden) und alle darin enthaltenen Steuerelemente und gibt die zugehörigen Speicher- und Systemressourcen frei.
Gui, Destroy
Wenn das Fenster später neu erstellt wird, beginnen alle Fenstereigenschaften wie Farbe und Schrift wieder mit ihren Standardwerten (als hätte das Fenster nie existiert). Alle GUI-Fenster werden automatisch zerstört, sobald das Skript beendet wird.
Bestimmt Schriftart, Schriftgröße, Schriftstil und/oder Schriftfarbe für danach erstellte Steuerelemente.
Gui, Font , Optionen, SchriftName
Zum Beispiel:
Gui, Font, s10, Verdana ; Schriftart Verdana mit Größe 10.
Die letzten beiden Parameter können weggelassen werden, um die Standard-GUI-Schriftart des Systems, inklusive Größe und Farbe, wiederherzustellen.
SchriftName ist der Name einer beliebigen Schrift, z.B. eine aus der Schriftentabelle. Wenn SchriftName weggelassen wird oder im System nicht vorhanden ist, wird die zuvor gesetzte Schriftart verwendet (wenn es keine gibt, wird die Standard-GUI-Schriftart des Systems verwendet). Dieses Verhalten ist nützlich, um ein GUI-Fenster, das für mehrere Systeme gedacht ist, eine ähnliche Schrift verwenden zu lassen, selbst wenn in einigen dieser Systeme die bevorzugte Schrift fehlt. Das folgende Beispiel bewirkt, dass Verdana gegenüber Arial bevorzugt wird, welches wiederum gegenüber MS Sans Serif bevorzugt wird:
Gui, Font,, MS Sans Serif Gui, Font,, Arial Gui, Font,, Verdana ; Bevorzugte Schrift.
Wenn der Optionen-Parameter leer ist oder weggelassen wird, werden die Attribute der zuvor gesetzten Schrift verwendet. Andernfalls geben Sie stattdessen einen oder mehrere der folgenden Optionsbuchstaben an, die jeweils durch mindestens ein Leer- oder Tabulatorzeichen voneinander getrennt sind:
C: Der Name einer Farbe (siehe Farbentabelle) oder ein RGB-Wert, oder das Wort Default, um die Standardfarbe des Systems wiederherzustellen (üblicherweise schwarz). Beispielwerte: cRed
, cFFFFAA
, cDefault
. Hinweis: Button- und StatusBar-Steuerelemente können nicht mit einer benutzerdefinierten Farbe versehen werden. Alternativ kann auch die C-Option verwendet werden, um die Schriftfarbe für einzelne Steuerelemente bei ihrer Erstellung zu bestimmen. Zum Beispiel: Gui, Add, Text, cRed, Mein Text
.
S: Größe (in Punkten). Zum Beispiel: s12
(Dezimalzahl, nicht Hexadezimalzahl).
W: Breite (Dicke). Eine Zahl zwischen 1 und 1000 (400 ist normal und 700 ist fett). Zum Beispiel: w600
(Dezimalzahl, nicht Hexadezimalzahl).
Die folgenden Wörter werden ebenfalls unterstützt: bold, italic, strike, underline und norm (übersetzt: fett, kursiv, durchgestrichen, unterstrichen und normal). Norm stellt die normale Breite/Dicke der Schrift wieder her und schaltet italic, strike und underline aus (Farbe und Größe bleiben unverändert). Es ist möglich, Norm zu verwenden, um alle Attribute auszuschalten und dann selektiv andere einzuschalten. Zum Beispiel bewirkt norm italic
, dass die Schrift normalisiert und anschließend kursiv gemacht wird.
Mehrere Optionen müssen mit einem Leerzeichen voneinander getrennt werden. Zum Beispiel: cBlue s12 bold
.
Bei mehreren GUI-Fenstern ist zu beachten, dass jedes Fenster seine eigenen gespeicherten Schrifteinstellungen abruft, wenn neue Steuerelemente erstellt werden.
Das Betriebssystem stellt außerdem Standarddialogfenster bereit, die der Benutzer zum Auswählen einer Schriftart, einer Farbe oder eines Symbols verwenden kann. Solche Dialogfenster können via DllCall() angezeigt werden, wie auf GitHub gezeigt.
Q: [AHK_L 19+]: Textdarstellungsqualität. Zum Beispiel: q3
. Nach Q muss eine Nummer aus der folgenden Tabelle angegeben werden:
Nummer | Windows-Konstante | Beschreibung |
---|---|---|
0 | DEFAULT_QUALITY | Die Darstellung der Schrift spielt keine Rolle. |
1 | DRAFT_QUALITY | Die exakte Übereinstimmung mit logischen Schriftattributen (fett, kursiv usw.) ist wichtiger als die Zeichenqualität der Schrift. |
2 | PROOF_QUALITY | Die Zeichenqualität der Schrift ist wichtiger als die exakte Übereinstimmung mit logischen Schriftattributen (fett, kursiv usw.). |
3 | NONANTIALIASED_QUALITY | Die Schrift wird nie antialiasiert (geglättet). |
4 | ANTIALIASED_QUALITY | Die Schrift wird antialiasiert (geglättet), wenn die Schrift dies unterstützt und nicht zu klein oder zu groß ist. |
5 | CLEARTYPE_QUALITY | Windows XP und höher: Die Schrift wird (wenn möglich) mit der ClearType-Antialiasing-Methode gerendert. |
Weitere Informationen zur Bedeutung dieser Werte finden Sie unter Microsoft Docs: CreateFont.
Standardmäßig wird die höchste Qualitätseinstellung verwendet. Daher wird dieses Feature eher dazu verwendet, die Kantenglättung auszuschalten, um den Text in bestimmten Fällen besser lesbar zu machen.
Bestimmt die Hintergrundfarbe des Fensters und/oder aller darin enthaltenen Steuerelemente.
Gui, Color , FensterFarbe, SteuerelementFarbe
FensterFarbe wird als Hintergrund für das GUI-Fenster selbst verwendet. SteuerelementFarbe wird auf alle aktuellen und zukünftigen Steuerelemente im Fenster angewendet, die benutzerdefinierte Farben unterstützen. SteuerelementFarbe wirkt sich nur einmalig auf ListView- und TreeView-Steuerelemente aus; nachträgliche Änderungen der SteuerelementFarbe haben keine Auswirkung auf diese Steuerelemente. In solchen Fällen kann GuiControl +BackgroundFF9977, MeineListView
verwendet werden, um die Farbe explizit zu ändern.
Beide Parameter können leer gelassen werden, um die entsprechende Farbe beizubehalten. Andernfalls geben Sie einen der 16 primären HTML-Farbnamen oder einen 6-stelligen RGB-Farbwert (mit oder ohne 0x-Präfix) an, oder das Wort Default, um die Standardfarbe wiederherzustellen. Beispielwerte: Silver
, FFFFAA
, 0xFFFFAA
, Default
.
Ein Fenster verwendet als Hintergrundfarbe standardmäßig die Standardschaltflächenfarbe des Systems, während ein Steuerelement als Hintergrundfarbe standardmäßig die Standardfensterfarbe des Systems verwendet (üblicherweise weiß).
Die Farbe der Menüleiste und aller darin enthaltenen Untermenüs kann wie folgt geändert werden: Menu, MeineMenüleiste, Color, White
.
Mit WinSet TransColor kann der Hintergrund transparent gemacht werden. Wenn Sie dies jedoch tun, ohne zuvor eine benutzerdefinierte Fensterfarbe via Gui Color zugewiesen zu haben, werden Button-Steuerelemente ebenfalls transparent. Um das zu verhindern, weisen Sie zuerst eine benutzerdefinierte Farbe zu und machen Sie diese dann transparent. Zum Beispiel:
Gui, Color, EEAA99 Gui +LastFound ; Macht das GUI-Fenster zum zuletzt gefundenen Fenster für die Zeile darunter. WinSet, TransColor, EEAA99
Die folgende Zeile kann hinzugefügt werden, um den Rahmen und die Titelleiste eines Fensters zu entfernen, das bereits transparent gemacht wurde:
Gui -Caption ; Oder Gui, GuiName:-Caption, falls es nicht das Standardfenster ist.
Weiter unten finden Sie ein Beispiel für eine Bildschirmanzeige (OSD), das zeigt, wie diese Methode in der Praxis verwendet werden kann.
Bestimmt die Anzahl der Pixel, die auf der linken/rechten und oberen/unteren Seite des Fensters freigelassen werden, wenn Steuerelemente aufgrund fehlender X- oder Y-Koordinate automatisch positioniert werden.
Gui, Margin , X, Y
Diese Abstände werden auch verwendet, um den vertikalen und horizontalen Abstand zwischen automatisch positionierten Steuerelementen zu bestimmen. Außerdem werden diese Abstände zur Berechnung der Fenstergröße herangezogen, wenn Gui Show zum ersten Mal verwendet wird (wenn keine explizite Größe angegeben ist).
Gui, Margin
beeinflusst nur das Standardfenster, während Gui, Name:Margin
nur Einfluss auf das benannte Fenster hat. Wenn dieser Unterbefehl nicht verwendet wird, werden die Ränder des Fensters beim Hinzufügen des ersten Steuerelements standardmäßig mit Abständen versehen, die proportional zur Größe der aktuell ausgewählten Schrift sind (0.75 mal die Schrifthöhe für Oben & Unten, 1.25 mal die Schriftbreite für Links & Rechts).
Es ist möglich, die Abstände zu ändern, während Steuerelemente hinzugefügt werden. Allerdings gelten solche Änderungen nur für danach hinzugefügte Steuerelemente, nicht für bereits vorhandene. Wenn X oder Y weggelassen wird, bleibt der entsprechende Abstand unverändert.
Stattet das Fenster mit einer Menüleiste aus.
Gui, Menu , MenüName
Verwenden Sie hierfür den Menu-Befehl, um ein gewöhnliches Menü zu erstellen. Zum Beispiel:
Menu, DateiMenü, Add, Ö&ffnen`tCtrl+F, MenüDateiÖffnen ; Siehe untere Bemerkungen zu Ctrl+F. Menu, DateiMenü, Add, &Beenden, MenuHandler Menu, HilfeMenü, Add, Inf&o, MenuHandler Menu, MeineMenüleiste, Add, &Datei, :DateiMenü ; Die zwei oben erstellten Untermenüs hinzufügen. Menu, MeineMenüleiste, Add, &?, :HilfeMenü Gui, Menu, MeineMenüleiste
In der ersten Zeile oben sehen Sie Ctrl+F
, das nach Ö&ffnen
folgt (mit einem Tabulatorzeichen dazwischen). Dabei handelt es sich um ein Tastaturkurzbefehl, den der Benutzer drücken kann, um die Aktion des Menüpunkts auszuführen, ohne dass der Benutzer erst dorthin navigieren muss. [v1.1.04+]: Tastaturkurzbefehle mit den regulären Modifikatortasten Ctrl, Alt und Shift werden automatisch als Keyboard Accelerator für die GUI registriert. Keyboard Accelerators ohne Modifikatoren sind Groß-/Kleinschreibung-sensitiv und können nur mit ungewöhnlichen Mitteln wie IME oder Alt+NNNN ausgelöst werden.
Wenn eine bestimmte Tastenkombination nicht automatisch funktioniert, können Sie ggf. einen kontextabhängigen Hotkey verwenden. Beachten Sie aber, dass solche Hotkeys üblicherweise nicht durch Send ausgelöst werden können und dass sie im Gegensatz zu einem typischen Keyboard Accelerator andere Skripte stören können.
Mit Gui Menu
(also ohne den letzten Parameter) können Sie die aktuelle Menüleiste aus dem Fenster entfernen.
Ein Menü, das bereits als Menüleiste fungiert, sollte nicht als Kontextmenü oder Untermenü verwendet werden. Der Grund dafür ist, dass Menüleisten intern ein anderes Format benötigen. (Diese Einschränkung gilt jedoch nur für die Menüleiste selbst, nicht für ihre Untermenüs.) Um dieses Problem zu umgehen, erstellen Sie zweimal das gleiche Menü und weisen Sie eines davon der Menüleiste zu.
Das Anwenden von destruktiven Menu-Unterbefehlen wie Delete und DeleteAll auf eine Menüleiste (und in einigen Fällen auf die darin enthaltenen Untermenüs) ist wirkungslos und bewirkt, dass ein Fehlerdialogfenster angezeigt wird (sofern UseErrorLevel nicht aktiv ist). Befolgen Sie die folgenden Schritte, um diese Art von Änderungen vornehmen zu können: 1) Entfernen Sie die Menüleiste mit Gui Menu
(also ohne den MenüName-Parameter); 2) machen Sie die gewünschten Änderungen; 3) fügen Sie die Menüleiste mit Gui, Menu, MeineMenüleiste
wieder hinzu.
Macht das Fenster sichtbar (falls nötig) und führt die entsprechende Operation durch.
Gui, Minimize Gui, Maximize Gui, Restore
Wenn das Fenster nicht existiert (z.B. weil es via Gui Destroy zerstört wurde), ist dieser Unterbefehl wirkungslos.
Lässt die Taskleistenschaltfläche des Fensters einmal aufblinken.
Gui, Flash , Off
Dazu wird die Farbe der Titelleiste und/oder der Taskleistenschaltfläche (falls vorhanden) invertiert. Geben Sie das optionale Wort Off an, um die Originalfarben der Titelleiste und Taskleistenschaltfläche wiederherzustellen (das tatsächliche Verhalten variiert aber je nach OS-Version). Das folgende Beispiel lässt das Fenster dreimal aufblinken, da jedes Paar von "Gui Flash" die Farben des Fensters invertiert und wiederherstellt:
Loop 6 { Gui Flash Sleep 500 ; Es reagiert sehr empfindlich auf diesen Wert; Änderungen können zu unerwarteten Ergebnissen führen. }
Ändert den Standard-GUI-Fensternamen des aktuellen Threads.
Gui, GuiName:Default
Dies wird immer dann verwendet, wenn für GuiControl, GuiControlGet und den Gui-Befehl selbst kein Fenstername angegeben wurde. Das folgende Beispiel ändert den Standardfensternamen in "MeineGui": Gui MeineGui:Default
. Weitere Informationen zum Standardfenster finden Sie unter Standardfenster eines Threads.
[v1.1.03+]: GuiName kann die HWND-Nummer (eindeutige ID) eines GUI-Fensters des Skripts sein. Wenn das Fenster einen Namen hat, wird dieser Name zum Standardfensternamen, der auch nach dem Zerstören des Fensters erhalten bleibt. Wenn das Fenster keinen Namen hat, wird der Standardfenstername beim Zerstören des Fensters auf 1 zurückgesetzt.
[v1.1.23+]: Die interne Variable A_DefaultGui enthält den Namen oder die Nummer der Standard-GUI.
Setzt verschiedene Optionen und Styles für das Aussehen und Verhalten des Fensters. Weitere Informationen finden Sie unter Optionen und Styles für ein Fenster (siehe unten).
Nach dem GUI-Befehl können Optionen und Styles angegeben werden, die jeweils durch mindestens ein Leer- oder Tabulatorzeichen voneinander getrennt sind.
Gui, +/-Option1 +/-Option2 ...
Aus Performanzgründen ist es besser, alle Optionen auf einer Zeile zu setzen, bevor das Fenster erstellt wird (also bevor andere Unterbefehle wie z.B. Gui Add verwendet werden).
Der Effekt des Befehls ist kumulativ (summierend), d.h. dieser Befehl ändert nur die explizit angegebenen Optionen, alle anderen bleiben unverändert.
Geben Sie ein Pluszeichen an, um die Option hinzuzufügen, oder ein Minuszeichen, um sie zu entfernen. Zum Beispiel:
Gui +Resize -MaximizeBox ; Ändert die Einstellungen des Standard-GUI-Fensters. Gui MeineGui:+Resize -MaximizeBox ; Ändert die Einstellungen der GUI namens MeineGui.
AlwaysOnTop: Gibt dem Fenster die Eigenschaft, immer im Vordergrund zu sein, also immer vor allen anderen Fenstern sichtbar zu sein, was den gleichen Effekt hat wie WinSet AlwaysOnTop.
Border: Stattet das Fenster mit einem dünnen Rahmen aus. Diese Option wird selten verwendet.
Caption (standardmäßig vorhanden): Stattet das Fenster mit einer Titelleiste und einem dicken Rahmen aus. Beachten Sie, dass die Titelleiste eines Fensters erst entfernt werden sollte, nachdem eine Farbe mit WinSet TransColor transparent gemacht wurde.
Delimiter: Gibt an, dass das Fenster nicht den Vertikalstrich (|), sondern ein anderes Zeichen als Trennzeichen verwenden soll, wenn Steuerelementinhalte via Gui Add hinzugefügt, via GuiControl modifiziert, oder via Gui Submit oder GuiControlGet abgerufen werden. Geben Sie das gewünschte Trennzeichen direkt nach dem Wort Delimiter an. Zum Beispiel würde Gui +Delimiter`n
ein Zeilenvorschubzeichen verwenden, das sich besonders gut für Fortsetzungsbereiche eignet. Entsprechend kann mit Gui +Delimiter|
das Standardtrennzeichen wiederhergestellt werden. Um ein Leer- oder Tabulatorzeichen zu verwenden, geben Sie Gui +DelimiterSpace
oder Gui +DelimiterTab
an. Die Änderung des Trennzeichens wirkt sich auf alle vorhandenen und nachfolgenden Threads aus, die mit diesem bestimmten Fenster arbeiten.
Disabled: Deaktiviert das Fenster, um den Benutzer daran zu hindern, mit den darin enthaltenen Steuerelementen zu interagieren. Diese Option wird oft auf ein Fenster mit Unterfenstern angewendet (siehe Owner).
DPIScale [v1.1.11+]: Verwenden Sie Gui -DPIScale
, um die standardmäßig aktive DPI-Skalierung zu deaktivieren. Wenn die DPI-Skalierung aktiviert ist, werden Koordinaten und Größen, die an die Gui-Unterbefehle und verwandte Variablen übergeben oder von diesen abgerufen werden, automatisch gemäß dem Bildschirm-DPI-Wert skaliert. Bei einem DPI-Wert von z.B. 144 (150 %) würde Gui Show, w100
die GUI 150 (100 * 1.5) Pixel breit machen, während eine Änderung der Fensterbreite auf 200 Pixel via Maus oder WinMove dazu führen würde, dass A_GuiWidth 133 (200 // 1.5) zurückgibt. A_ScreenDPI enthält den aktuellen DPI-Wert des Systems.
Die DPI-Skalierung betrifft nur Gui-Unterbefehle und verwandte Variablen, d.h. Koordinaten aus anderen Quellen wie ControlGetPos oder WinGetPos werden nicht funktionieren. Es gibt eine Reihe von Möglichkeiten, damit umzugehen:
Gui +DPIScale
) und ausgeschaltet (Gui -DPIScale
) werden. Die Änderung der Einstellung hat keinen Einfluss auf bereits definierte Positionen oder Größen.x*(A_ScreenDPI/96)
logische Koordinaten bzw. GUI-Koordinaten (in diesem Fall x) in physische Koordinaten bzw. Nicht-GUI-Koordinaten um.HwndAusgabeVar [v1.1.04+]: Diese Option speichert das Fensterhandle (HWND) der GUI in AusgabeVar. Zum Beispiel: Gui +HwndMeineGuiHwnd
. Innerhalb einer Funktion wird MeineGuiHwnd als dynamische Variable behandelt. Die HWND-Nummer (eindeutige ID) einer GUI wird oft in Verbindung mit PostMessage, SendMessage und DllCall() verwendet. Außerdem kann diese Nummer direkt als ahk_id-Fenstertitel oder anstelle eines GUI-Namens verwendet werden, z.B. Gui %MeineGuiHwnd%:Destroy
.
Label [v1.0.44.09+]: Bestimmt benutzerdefinierte Namen für die speziellen Labels des Fensters. Zum Beispiel bewirkt Gui MeineGui:+LabelMeineGui_On
, dass das Fenster nicht MeineGuiGuiClose und MeineGuiGuiSize, sondern MeineGui_OnClose und MeineGui_OnSize als Labels (sofern vorhanden) verwendet. Mit anderen Worten, die Zeichenkette "MeineGuiGui" wird in allen speziellen Labelnamen durch "MeineGui_On" ersetzt. Diese Option kann auch verwendet werden, um mehreren Fenstern den gleichen Satz von Labels zuzuweisen (in diesem Fall kann das Skript A_Gui verwenden, um herauszufinden, welches Fenster die Subroutine gestartet hat).
LastFound: Macht das Fenster zum zuletzt gefundenen Fenster (geschieht automatisch in einem GUI-Thread), damit Befehle wie WinSet mit diesem Fenster arbeiten können, sogar wenn es versteckt ist (d.h. DetectHiddenWindows ist nicht notwendig). Diese Option ist besonders nützlich, um die Eigenschaften des Fensters vor dem Anzeigen zu ändern. Zum Beispiel:
Gui +LastFound WinSet, TransColor, %UnsichtbareFarbe% 150 Gui Show
LastFoundExist [v1.0.43.09+]: Im Gegensatz zu den anderen Optionen wird LastFoundExist nur erkannt, wenn keine anderen Optionen auf der gleichen Zeile vorhanden sind. +LastFoundExist
ist dasselbe wie +LastFound
, mit dem Unterschied, dass das Fenster nicht erstellt wird, wenn es noch nicht existiert. Der Hauptzweck dieser Option ist es, herauszufinden, ob ein bestimmtes GUI-Fenster existiert. Zum Beispiel:
Gui MeineGui:+LastFoundExist if WinExist() MsgBox GUI "MeineGui" existiert bereits.
MaximizeBox: Aktiviert die Titelleistenschaltfläche zum Maximieren des Fensters. Diese Option ist in Resize inbegriffen.
MinimizeBox (standardmäßig vorhanden): Aktiviert die Titelleistenschaltfläche zum Minimieren des Fensters.
MinSize und MaxSize [v1.0.44.13+]: Bestimmt die minimale und/oder maximale Fenstergröße, z.B. wenn der Benutzer an den Rändern des Fensters zieht, um es kleiner/größer zu machen. Geben Sie +MinSize
und/oder +MaxSize
an (also ohne Suffix), um die aktuelle Fenstergröße als Grenzwert zu verwenden (wenn das Fenster keine aktuelle Größe hat, wird die gesetzte Größe des ersten Gui Show verwendet). Alternativ können Sie auch die Breite, ein X und dann die Höhe anfügen, z.B. Gui +Resize +MinSize640x480
. Diese Dimensionen (in Pixel) spezifizieren die Größe des Clientbereichs des Fensters (das ist der Bereich ohne Rahmen, Titelleiste und Menüleiste). Geben Sie jede Zahl als Dezimalzahl an, nicht als Hexadezimalzahl.
Eine der Dimensionen kann weggelassen werden, um sie unverändert zu lassen (z.B. +MinSize640x
oder +MinSizex480
). Außerdem kann Min/MaxSize mehrfach angegeben werden, um für eine Dimension die aktuelle Fenstergröße und für die andere eine explizite Größe zu verwenden. Zum Beispiel würde +MinSize +MinSize640x
die aktuelle Fenstergröße für die Höhe und 640 Pixel für die Breite verwenden.
Wenn MinSize und MaxSize nie verwendet werden, werden die Standardwerte des Betriebssystems verwendet. Mit Gui -MinSize -MaxSize
können die Standardwerte wiederhergestellt werden.
Hinweis: Das Fenster muss +Resize haben, damit der Benutzer es kleiner/größer machen kann.
OwnDialogs: Gui +OwnDialogs
bewirkt, dass alle nachfolgenden MsgBox-, InputBox-, FileSelectFile- oder FileSelectFolder-Dialogfenster im aktuellen Thread (z.B. ButtonOK-Subroutine) dem aktuellen Fenster untergeordnet werden. Solche Dialogfenster werden modal, d.h. der Benutzer kann erst mit dem GUI-Fenster interagieren, wenn er das Dialogfenster schließt. ToolTip-, Progress- und SplashImage-Fenster können hingegen nicht modal gemacht werden, selbst wenn sie einem Fenster untergeordnet werden; diese werden immer über ihrem übergeordneten Fenster angezeigt. Untergeordnete Dialogfenster werden automatisch zerstört, sobald ihr übergeordnetes Fenster zerstört wird.
Normalerweise ist es nicht notwendig, diese Einstellung wieder auszuschalten, da sie keinen Einfluss auf andere Threads hat. Wenn ein Thread jedoch sowohl untergeordnete als auch nicht-untergeordnete Dialogfenster anzeigen muss, verwenden Sie Gui -OwnDialogs
, um diese Einstellung auszuschalten.
Wenn kein Fensternamepräfix angegeben ist - z.B. wird Gui +OwnDialogs
statt Gui MeineGui:+OwnDialogs
verwendet - werden die Dialogfenster dem Standardfenster des Threads untergeordnet.
Owner: Mit +Owner
kann das Fenster einem anderen Fenster untergeordnet werden. Untergeordnete Fenster haben standardmäßig keine eigene Taskleistenschaltfläche und werden, sofern sichtbar, immer über ihrem übergeordneten Fenster angezeigt. Sie werden automatisch zerstört, sobald ihr übergeordnetes Fenster zerstört wird. +Owner
muss nach der Erstellung des übergeordneten Fensters verwendet werden, aber in [v1.1.05+] kann diese Option vor und nach der Erstellung des untergeordneten Fensters verwendet werden. Es gibt zwei Möglichkeiten, wie +Owner
verwendet werden kann:
Gui, MeineGui:+OwnerAndereGui ; MeineGui zum Unterfenster von AndereGui machen. Gui, MeineGui:+Owner ; MeineGui zum Unterfenster des Hauptfensters des Skripts machen, um eine Taskleistenschaltfläche zu verhindern.
[v1.1.03+]: Direkt nach +Owner
kann der Name oder die Nummer einer bereits existierenden GUI oder die HWND-Nummer (eindeutige ID) eines beliebigen Top-Level-Fensters angegeben werden.
Hinweis zur Kompatibilität: In [v1.1.03+] entfernt +Owner
den WS_CHILD-Style und setzt den WS_POPUP-Style. Um das übergeordnete Fenster einer GUI zu setzen, müssen Skripte entweder die +Parent
-Option verwenden, oder die entsprechenden Styles nach der +Owner
-Option überschreiben.
Mit Gui +Disabled
kann die Interaktion mit dem übergeordneten Fenster verboten werden, während eines seiner untergeordneten Fenster angezeigt wird. Später (also wenn der Zeitpunkt gekommen ist, das untergeordnete Fenster via Cancel/Destroy zu schließen) kann die Interaktion mit dem übergeordneten Fenster via Gui -Disabled
wieder erlaubt werden. Machen Sie das vor dem Cancel/Destroy, damit das übergeordnete Fenster automatisch reaktiviert wird.
Parent [v1.1.03+]: Geben Sie +Parent
und direkt danach den Namen oder die Nummer einer bereits existierenden GUI oder die HWND-Nummer (eindeutige ID) eines Fensters oder Steuerelements an, die/das diesem Fenster übergeordnet werden soll. Mit -Parent
kann die GUI wieder in ein Top-Level-Fenster umgewandelt werden. Diese Option kann auch nach der Erstellung des Fensters verwendet werden. Bekannte Einschränkungen:
+Parent
-Option nicht mit einem existierenden Fenster, wenn das neue übergeordnete Fenster immer im Vordergrund ist und das untergeordnete Fenster nicht.+Parent
-Option kann während der GUI-Erstellung fehlschlagen, wenn das übergeordnete Fenster extern ist, aber nach der GUI-Erstellung funktionieren. Dies liegt an den Unterschieden bei der Zuweisung der Styles.Resize: Ermöglicht das Ändern der Fenstergröße und aktiviert die Titelleistenschaltfläche zum Maximieren des Fensters. Mit +Resize -MaximizeBox
kann die Aktivierung der Schaltfläche zum Maximieren des Fensters verhindert werden.
SysMenu (standardmäßig vorhanden): Geben Sie -SysMenu
(minus SysMenu) an, um das Systemmenü und Symbol in der oberen linken Ecke des Fensters zu entfernen. Die Titelleistenschaltflächen zum Minimieren, Maximieren und Schließen des Fensters werden ebenfalls entfernt.
Theme: Geben Sie -Theme
an, um alle danach erstellten Steuerelemente im klassischen Design darzustellen (nur ab Windows XP). Mit +Theme
kann das neue Design wieder eingeschaltet werden.
Hinweis: Die Theme-Option funktioniert nicht, wenn das Betriebssystem älter als Windows XP ist oder wenn Windows XP selbst das klassische Design aktiv hat.
Um diese Option nur für ein bestimmtes Steuerelement zu ändern, fügen Sie +Theme
oder -Theme
in dessen Optionen ein, während es erstellt wird.
ToolWindow: Stattet das Fenster mit einer kleineren Titelleiste aus und versteckt dessen Taskleistenschaltfläche. Diese Option versteckt immer die Schaltflächen zum Maximieren und Minimieren des Fensters, egal ob die Styles WS_MAXIMIZEBOX und WS_MINIMIZEBOX vorhanden sind.
(Namenloser Style): Geben Sie ein Plus- oder Minuszeichen und direkt danach eine dezimale oder hexadezimale Zahl an, um einen Style hinzuzufügen oder zu entfernen.
(Namenloser erweiterter Style): Geben Sie ein Plus- oder Minuszeichen und direkt danach ein E und eine dezimale oder hexadezimale Zahl an, um einen erweiterten Style hinzuzufügen oder zu entfernen. Zum Beispiel würde +E0x40000
den WS_EX_APPWINDOW-Style hinzufügen, der eine Taskleistenschaltfläche für ein Fenster bereitstellt, das sonst keine hätte. Weitere erweiterte Styles, die nur selten verwendet werden und daher hier nicht aufgeführt sind, finden Sie unter Extended Window Styles | Microsoft Docs.
Bei der Verwendung von Gui Add können beliebig viele Optionen und Styles angegeben werden, die jeweils durch mindestens ein Leer- oder Tabulatorzeichen voneinander getrennt sind. Dieser Abschnitt ist in folgende Unterabschnitte unterteilt:
Hinweis: Für einfache Layouts sind die folgenden Optionen in der Regel ausreichend. Für komplexere Layouts können jedoch Tools wie der SmartGUI Creator von Rajat hilfreicher sein, da diese die visuelle Gestaltung eines GUI-Fensters nach dem Motto "what you see is what you get" ermöglichen. Der SmartGUI Creator ist kostenlos und kann unter www.autohotkey.com/docs/SmartGUI/ heruntergeladen werden.
Wenn Dimensionen und/oder Koordinaten in Optionen weggelassen werden, wird das Steuerelement relativ zum vorherigen Steuerelement positioniert und/oder je nach Inhalt und Typ automatisch dimensioniert.
Folgende Optionen werden unterstützt:
Rn: Textzeilen (wobei n eine beliebige Zahl ist, sogar eine Floating-Point-Zahl wie r2.5
). R ist oft besser als H (Höhe). Wenn R und H gleichzeitig vorhanden sind, wird R bevorzugt. Bei einer GroupBox ist das die Anzahl der Steuerelemente, für die Platz in der Box reserviert werden soll. Bei einer DropDownList, ComboBox oder ListBox ist das die Anzahl der Listeneinträge, die der Listenbereich des Steuerelements maximal anzeigen soll (in Windows XP oder höher ist es ratsam, eine DropDownList oder ComboBox ohne R und H zu erstellen, damit die aufklappbare Liste von der verfügbaren Höhe des Desktops profitieren kann). Bei allen anderen Steuerelementen ist R die Anzahl der Textzeilen, die maximal angezeigt werden sollen.
Wn: Breite (wobei n eine beliebige Zahl in Pixel ist). Wenn weggelassen, wird die Breite einiger Steuerelemente automatisch anhand ihres Inhalts berechnet; Tabs sind standardmäßig das 30-fache der aktuellen Schriftgröße plus das 3-fache des horizontalen Abstands breit; vertikale ProgressBars standardmäßig das 2-fache der aktuellen Schriftgröße breit; und horizontale ProgressBars, horizontale Sliders, DropDownLists, ComboBoxes, ListBoxes, GroupBoxes, Edits und Hotkeys standardmäßig das 15-fache der aktuellen Schriftgröße breit (außer GroupBoxes, die das 18-fache breit sind, um Platz für Abstände zu schaffen).
Hn: Höhe (wobei n eine beliebige Zahl in Pixel ist). Wenn sowohl H als auch R weggelassen werden, sind DropDownLists, ComboBoxes, ListBoxes und leere mehrzeilige Edits standardmäßig 3 Zeilen hoch; GroupBoxes standardmäßig 2 Zeilen hoch; vertikale Sliders und vertikale ProgressBars standardmäßig 5 Zeilen hoch; horizontale Sliders standardmäßig 30 Pixel hoch (außer wenn eine Dicke angegeben wurde); horizontale ProgressBars standardmäßig das 2-fache der aktuellen Schriftgröße hoch; Hotkeys standardmäßig 1 Zeile hoch; und Tabs standardmäßig 10 Zeilen hoch. Alle anderen Steuerelemente erhalten automatisch eine Höhe, die auf ihrem Inhalt basiert. Beachten Sie bei DropDownLists und ComboBoxes, dass H die kombinierte Höhe des immer sichtbaren Teils und des Listenteils ist (bei einem zu niedrigen Wert wird immer mindestens ein Listeneintrag angezeigt). Außerdem ist es bei allen Arten von Steuerelementen in der Regel besser, die Anzahl der Zeilen mit der R- statt H-Option anzugeben, um zu vermeiden, dass ein Steuerelement unvollständige bzw. nur teilweise sichtbare Textzeilen anzeigt.
WP±n, HP±n (wobei n eine beliebige Zahl in Pixel ist) können verwendet werden, um die Breite und/oder Höhe eines Steuerelements genau auf die Breite oder Höhe des zuvor hinzugefügten Steuerelements zu setzen, die optional um eine beliebige Zahl erhöht oder verringert werden kann. Zum Beispiel würde wp
die Breite eines Steuerelements auf die Breite des vorherigen Steuerelements setzen, und wp-50
auf die Breite des vorherigen Steuerelements, aber um 50 verringert.
Xn, Yn: X-Position, Y-Position (wobei n eine beliebige Zahl ist): x0 y0
beispielsweise positioniert das Steuerelement in die obere linke Ecke des Clientbereichs des Fensters (das ist der Bereich ohne Rahmen, Titelleiste und Menüleiste).
X+n, Y+n (wobei n eine beliebige Zahl in Pixel ist): Es ist möglich, ein optionales Pluszeichen einzufügen, um ein Steuerelement relativ zum rechten bzw. unteren Rand des zuvor hinzugefügten Steuerelements zu positionieren. y+10
beispielsweise positioniert das Steuerelement unterhalb des zuvor hinzugefügten Steuerelements, die genau 10 Pixel voneinander entfernt sind. x+10
hingegen positioniert das Steuerelement 10 Pixel entfernt auf die rechte Seite des zuvor hinzugefügten Steuerelements. Da negative Zahlen wie x-10
für die absolute Positionierung reserviert sind, müssen negative Offsets mit einem Pluszeichen beginnen. Zum Beispiel: x+-10
.
[v1.1.16+]: Für X+ und Y+ kann der Buchstabe M als Ersatz für den aktuellen Abstand (Margin) des Fensters verwendet werden. x+m
beispielsweise verwendet den rechten Rand des zuvor hinzugefügten Steuerelements und fügt den aktuellen Standardabstand hinzu. xp y+m
positioniert ein Steuerelement unterhalb des zuvor hinzugefügten Steuerelements, während eine relative X-Koordinate allein (mit XP oder X+) standardmäßig yp
impliziert.
XP±n, YP±n (wobei n eine beliebige Zahl ist) können verwendet werden, um Steuerelemente relativ zur linken oberen Ecke des zuvor hinzugefügten Steuerelements zu positionieren, was oft nützlich ist, um Steuerelemente mit einer GroupBox zu umschließen.
XM±n, YM±n (wobei n eine beliebige Zahl in Pixel ist) können verwendet werden, um ein Steuerelement an den ganz linken bzw. obersten Abstand (Margin) des Fensters zu positionieren (nach diesen Optionen kann ein Plus-/Minuszeichen und eine Zahl folgen).
XS±n und YS±n (wobei n eine beliebige Zahl in Pixel ist): Diese haben einen ähnlichen Effekt wie XM und YM, beziehen sich aber auf Koordinaten, die von einem zuvor hinzugefügten Steuerelement stammen, dessen Optionen das Wort Section enthält (das erste Steuerelement eines Fensters beginnt immer eine neue Sektion, egal ob dessen Optionen dieses Wort enthält). Zum Beispiel:
Gui, Add, Edit, w600 ; Ein relativ breites Eingabefeld ganz oben im Fenster hinzufügen. Gui, Add, Text, Section, Vorname: ; Position dieses Steuerelements speichern und eine neue Sektion beginnen. Gui, Add, Text,, Nachname: Gui, Add, Edit, ys ; Eine neue Spalte innerhalb dieser Sektion beginnen. Gui, Add, Edit Gui, Show
Nach XS und YS kann optional ein Plus-/Minuszeichen und eine Zahl folgen. Außerdem ist es möglich, sowohl das Wort Section als auch XS/YS in den Optionen eines Steuerelements anzugeben, um zu bewirken, dass das Steuerelement die alte Sektion verwendet, aber eine neue Sektion für nachfolgende Steuerelemente etabliert.
Wenn X und/oder Y weggelassen werden, passt sich ein GUI-Layout automatisch an künftige Änderungen bzgl. der Größe von Steuerelementen oder der Schrift an. Wenn Sie hingegen für jedes Steuerelement eine absolute Position angeben, müssen Sie möglicherweise die Position aller Steuerelemente unterhalb und/oder auf der rechten Seite des Steuerelements, dessen Größe geändert wurde, manuell verschieben.
Wenn sowohl X als auch Y weggelassen werden, wird das Steuerelement unterhalb des zuvor hinzugefügten Steuerelements positioniert, wobei der Standardabstand verwendet wird. Aufeinanderfolgende Text- oder Link-Steuerelemente werden mit zusätzlichen vertikalen Abständen versehen, damit sie besser ausgerichtet sind, wenn danach eine rechts befindliche Spalte mit Steuerelementen wie Edit, DDL usw. hinzugefügt wird. Um nur den vertikalen Standardabstand zu verwenden, geben Sie y+m
oder einen beliebigen Wert für X an.
Wenn nur eine Komponente weggelassen wird, hängt ihr Standardwert davon ab, mit welcher Option die andere Komponente angegeben wurde:
X angegeben | Standard für Y |
---|---|
Xn oder XM | Unterhalb aller vorherigen Steuerelemente (maximale Y-Ausdehnung plus Margin). |
XS | Unterhalb aller vorherigen Steuerelemente seit der letzten Verwendung der Section-Option. |
X+n oder XP | Dasselbe wie der obere Rand des vorherigen Steuerelements (YP). |
Y angegeben | Standard für X |
Yn oder YM | Rechts von allen vorherigen Steuerelementen (maximale X-Ausdehnung plus Margin). |
YS | Rechts von allen vorherigen Steuerelementen seit der letzten Verwendung der Section-Option. |
Y+n oder YP | Dasselbe wie der linke Rand des vorherigen Steuerelements (XP). |
V: Variable. Verknüpft eine Variable mit einem Steuerelement. Geben Sie direkt nach dem Buchstaben V den Namen einer globalen Variable an (oder einer lokalen ByRef-Variable, die auf eine globale Variable verweist, oder in [v1.0.46.01+] einer statischen Variable). Zum Beispiel bewirkt vMeinEdit
, dass der Inhalt des Steuerelements jedes Mal in die Variable MeinEdit gespeichert wird, wenn Gui Submit verwendet wird. Wenn ein Steuerelement nicht eingabefähig ist (z.B. ein Text- oder GroupBox-Steuerelement), kann die Zuordnung einer Variable dennoch hilfreich sein, da der Variablenname als eindeutiger Identifikator für das Steuerelement dient und somit im Zusammenhang mit dem SteuerelementID-Parameter von GuiControl und GuiControlGet sowie mit A_GuiControl verwendet werden kann.
Hinweis: Gui Submit ändert weder die zugeordneten Variablen von nicht-eingabefähigen Steuerelementen (z.B. Text und GroupBox) noch die von Steuerelementen, wo entsprechend dokumentiert (z.B. ListView und TreeView).
G: Gosub (g-Label). Startet automatisch eine Subroutine oder Funktion, wenn der Benutzer ein Steuerelement anklickt oder ändert. Geben Sie direkt nach dem Buchstaben G den Namen eines Labels an, das ausgeführt werden soll. gCancel
kann verwendet werden, um ein indirektes Gui Cancel auszulösen (wenn aber bereits ein Label namens "Cancel" im Skript existiert, wird dieses stattdessen ausgeführt). Die Subroutine kann die folgenden internen Variablen verwenden: A_Gui, A_GuiControl, A_GuiEvent, A_EventInfo und A_ThisLabel.
[v1.1.20+]: Es kann auch der Name einer Funktion angegeben werden, sofern dieser Name nicht als Label existiert. Alternativ kann der GuiControl-Befehl verwendet werden, um ein Funktionsobjekt mit einem Steuerelement zu verknüpfen. Die Funktion kann optional die folgenden Parameter akzeptieren (wobei gElementEreignis
die Funktion gesetzt hat):
ElementEreignis(ElementHwnd, GuiEreignis, EreignisInfo, ErrLevel:="")
Die Bedeutung der Parameter hängt vom Typ des Steuerelements ab. Hinweis: Wenn der vierte Parameter ohne Standardwert deklariert wird, kann die Funktion nur von Ereignissen aufgerufen werden, die vier Parameter bereitstellen.
Hinweis: Vorzeichenlose Optionen werden standardmäßig hinzugefügt. Zum Beispiel ist Wrap
dasselbe wie +Wrap
. Mit -Wrap
kann es hingegen wieder entfernt werden.
AltSubmit: Verwendet eine alternative Submit-Methode. Bei einer DropDownList, ComboBox oder ListBox bewirkt diese Option, dass Gui Submit nicht den Text, sondern die Position des ausgewählten Listeneintrags speichert. Wenn kein Listeneintrag ausgewählt ist, wird bei einer ComboBox weiterhin der Text des Eingabefeldes gespeichert, während bei einer DropDownList oder ListBox weiterhin die zugeordnete Ausgabevariable leer gemacht wird. Hinweis: AltSubmit beeinflusst auch das Verhalten von GuiControlGet beim Abrufen des Inhalts eines solchen Steuerelements.
C: Textfarbe (funktioniert nicht bei Schaltflächen und Statusleisten). Geben Sie den Buchstaben C an, unmittelbar gefolgt von einem Farbnamen (siehe Farbentabelle) oder RGB-Wert (mit oder ohne 0x-Präfix). Beispiele: cRed
, cFF2211
, c0xFF2211
, cDefault
.
Choose: Wählt vorab ein einzelnes Element in einem ComboBox-, DateTime-, DropDownList-, ListBox- oder Tab-Steuerelement aus. Geben Sie das Wort Choose
an, unmittelbar gefolgt von der Nummer eines Elements. Zum Beispiel: Choose2
Disabled: Stellt das Steuerelement in einem deaktivierten Zustand dar und bewirkt, dass es weder fokussiert noch geändert werden kann. Um die Interaktion mit diesem Steuerelement später wieder zu erlauben, verwenden Sie GuiControl Enable. Hinweis: Um ein Edit-Steuerelement stattdessen in den schreibgeschützten Zustand zu versetzen, fügen Sie ReadOnly
in dessen Optionen ein. Direkt nach dem Wort Disabled kann optional eine 0 oder 1 angegeben werden, um den Startzustand zu bestimmen (0 für aktiviert, 1 für deaktiviert). Mit anderen Worten, Disabled
ist dasselbe wie Disabled%VarMitEins%
.
Hidden: Versteckt zunächst das Steuerelement. Mit GuiControl Show kann es später wieder sichtbar gemacht werden. Direkt nach dem Wort Hidden kann optional eine 0 oder 1 angegeben werden, um den Startzustand zu bestimmen (0 für sichtbar, 1 für versteckt). Mit anderen Worten, Hidden
ist dasselbe wie Hidden%VarMitEins%
.
Left: Macht den Text linksbündig innerhalb der verfügbaren Breite des Steuerelements. Diese Option beeinflusst die folgenden Steuerelemente: Text, Edit, Button, CheckBox, Radio, UpDown, Slider, Tab, Tab2, GroupBox, DateTime.
Right: Macht den Text rechtsbündig innerhalb der verfügbaren Breite des Steuerelements. Bei CheckBox- und Radio-Steuerelementen bewirkt diese Option außerdem, dass das Auswahlfeld auf der rechten statt linken Seite des Steuerelements positioniert wird. Diese Option beeinflusst die folgenden Steuerelemente: Text, Edit, Button, CheckBox, Radio, UpDown, Slider, Tab, Tab2, GroupBox, DateTime, Link.
Center: Zentriert den Text des Steuerelements horizontal. Diese Option beeinflusst die folgenden Steuerelemente: Text, Edit, Button, CheckBox, Radio, Slider, GroupBox.
Section: Beginnt eine neue Sektion und speichert die Positionsdaten des Steuerelements, um sie später mit den oben beschriebenen Positionierungsoptionen XS und YS zu verwenden.
Tabstop: Geben Sie -Tabstop
(minus Tabstop) für ein eingabefähiges Steuerelement an, das übersprungen werden soll, wenn der Benutzer Tab zum Navigieren drückt.
Wrap: Aktiviert den automatischen Zeilenumbruch im Text des Steuerelements. Da der automatische Zeilenumbruch standardmäßig bei fast allen Arten von Steuerelementen aktiv ist, wird in der Regel -Wrap
verwendet, um diese Option zu deaktivieren.
VScroll: Stattet das Steuerelement mit einem vertikalen Scrollbalken aus, sofern möglich.
HScroll: Stattet das Steuerelement mit einem horizontalen Scrollbalken aus, sofern möglich. Der Rest dieses Absatzes gilt nur für die ListBox. Die horizontale Scrollbreite ist standardmäßig die 3-fache Breite der Listbox. Um eine andere Scrollbreite zu bestimmen, geben Sie direkt nach dem Wort HScroll eine Zahl an. Zum Beispiel ermöglicht HScroll500
einen scrollbaren Bereich von 500 Pixeln innerhalb der ListBox. Wenn die angegebene Scrollbreite allerdings kleiner als die Breite der ListBox ist, wird kein Scrollbalken angezeigt (obwohl das bloße Vorhandensein von HScroll
es überhaupt erst möglich macht, den horizontalen Scrollbalken später via GuiControl, +HScroll500, MeinScrollbalken
hinzuzufügen).
BackgroundTrans: Verwendet einen transparenten Hintergrund, der jedes Steuerelement, das sich hinter einem Text-, Picture- oder GroupBox-Steuerelement befindet, durchscheinen lässt. Zum Beispiel würde ein transparentes Text-Steuerelement, das über einem Picture-Steuerelement angezeigt wird, die Illusion erzeugen, als gehöre der Text zum Bild. Mit GuiControl, +Background
kann diese Option später wieder entfernt werden. Weitere Informationen zu transparenten Bildern finden Sie im AltSubmit-Abschnitt des Picture-Steuerelements. Bekannte Einschränkung: Es ist möglich, dass BackgroundTrans nicht ordnungsgemäß mit Steuerelementen innerhalb eines Tab-Steuerelements funktioniert, das eine ListView enthält.
Background: Geben Sie -Background
(minus Background) an, um ein Steuerelement dessen Standardhintergrundfarbe und nicht die via Gui Color definierte Hintergrundfarbe verwenden zu lassen. Diese Option wird häufig verwendet, um ein Tab-Steuerelement mit dessen Standardfarbe statt Fensterfarbe zu versehen. Mit GuiControl, +Background
kann diese Option später wieder entfernt werden.
Border: Umrahmt das Steuerelement mit einer dünnen Linie. Die meisten Steuerelemente haben bereits einen typspezifischen Rahmen und benötigen daher diese Option nicht. Wird ein bereits existierendes Steuerelement mit einem Rahmen versehen, kann es notwendig sein, die Breite und Höhe des Steuerelements um 1 Pixel zu vergrößern, um eine korrekte Darstellung zu gewährleisten.
HwndAusgabeVar [v1.0.46.01+]: Speichert das Fensterhandle (HWND) des neuen Steuerelements in AusgabeVar, wenn diese Option mit Gui Add verwendet wird. Zum Beispiel: Gui, Add, Edit, vMeinEdit HwndMeinEditHwnd
. Wird diese Option innerhalb einer Funktion verwendet, wird AusgabeVar als dynamische Variable behandelt. Die HWND-Nummer (eindeutige ID) eines Steuerelements wird oft in Verbindung mit PostMessage, SendMessage und DllCall() verwendet. Außerdem kann diese Nummer direkt als ahk_id-Fenstertitel (das auch mit versteckten Steuerelementen funktioniert, selbst wenn DetectHiddenWindows ausgeschaltet ist) oder in [v1.1.04+] bei GuiControl und GuiControlGet als SteuerelementID-Parameter verwendet werden. Die HWND-Nummer eines nicht-untergeordneten Fensters kann via Gui MeineGui:+HwndAusgabeVar abgerufen werden.
Theme: Mit dieser Option kann die aktuelle Design-Einstellung des Fensters für das neue Steuerelement überschrieben werden. Bei bereits existierenden Steuerelementen hat diese Option keinen Effekt; allerdings kann sich das in einer zukünftigen Version noch ändern. Weitere Informationen finden Sie unter Gui +/-Theme.
(Namenloser Style): Geben Sie ein Plus- oder Minuszeichen und direkt danach eine dezimale oder hexadezimale Zahl an, um einen Style hinzuzufügen oder zu entfernen. Wenn das Vorzeichen weggelassen wird, wird der Style standardmäßig hinzugefügt.
(Namenloser erweiterter Style): Geben Sie ein Plus- oder Minuszeichen und direkt danach ein E und eine dezimale oder hexadezimale Zahl an, um einen erweiterten Style hinzuzufügen oder zu entfernen. Wenn das Vorzeichen weggelassen wird, wird der Style standardmäßig hinzugefügt. Zum Beispiel würde E0x200
den WS_EX_CLIENTEDGE-Style hinzufügen, der Steuerelemente wie z.B. Picture mit einem abgesenkten Rahmen ausstattet. Weitere erweiterte Styles, die nur selten verwendet werden und daher hier nicht aufgeführt sind, finden Sie unter www.microsoft.com mit Suchbegriffen wie WS_EX_CLIENTEDGE.
Die folgenden Labels (Subroutinen) werden automatisch einem GUI-Fenster zugeordnet, wenn sie im Skript verwendet werden:
[v1.1.20+]: Wenn ein Label für ein bestimmtes Ereignis nicht existiert, kann stattdessen eine Funktion über diesen Namen aufgerufen werden. Die Funktion kann optional die HWND-Nummer (eindeutige ID) der GUI als ersten Parameter akzeptieren. Einige Ereignisse stellen noch mehr Parameter bereit.
Um auf die Ereignisse eines anderen Fensters anstelle des Fensters mit der Nummer 1 zuzugreifen, muss der Name oder die Nummer des Fensters (falls vorhanden) als Präfix für die oben genannten speziellen Labels verwendet werden; z.B. sind 2GuiEscape und 2GuiClose die Standardlabels für das Fenster Nummer 2, und MeineGuiGuiEscape und MeineGuiGuiClose die Standardlabels für das Fenster MeineGui. Mit Gui +Label kann ein benutzerdefiniertes Präfix definiert werden.
Wird gestartet, wenn das Fenster mit einer der folgenden Methoden geschlossen wird: Drücken der X-Schaltfläche in der Titelleiste, Auswählen des Systemmenüpunkts "Schließen" oder Schließen via WinClose. Wenn dieses Label fehlt, wird das Fenster beim Schließen nur versteckt, was den gleichen Effekt hat wie Gui Cancel. Die am häufigsten verwendete Aktion für GuiClose ist ExitApp. Zum Beispiel:
GuiClose: ExitApp
[v1.1.20+]: Wenn GuiClose eine Funktion ist, wird die GUI standardmäßig versteckt. Um das zu verhindern, muss die Funktion via Return einen Integer ungleich 0 zurückgeben. Zum Beispiel:
GuiClose(GuiHwnd) { ; Dieser Parameter muss nicht deklariert werden. MsgBox 4,, Wollen Sie die GUI wirklich verstecken? IfMsgBox No return true ; true = 1 }
Wird gestartet, wenn der Benutzer Esc drückt, während das GUI-Fenster aktiv ist. Wenn dieses Label fehlt, hat das Drücken von Esc keinen Effekt. Bekannte Einschränkung: Wenn die Interaktion mit dem ersten Steuerelement im Fenster verboten ist (möglicherweise abhängig vom Typ des Steuerelements), wird das GuiEscape-Label nicht gestartet. Es gibt eventuell noch andere Faktoren, die diesen Effekt hervorrufen.
Wird gestartet, wenn das Fenster kleiner/größer gemacht, minimiert, maximiert oder wiederhergestellt wird. Die internen Variablen A_GuiWidth und A_GuiHeight enthalten die neue Breite und Höhe des Clientbereichs des Fensters (das ist der Bereich ohne Rahmen, Titelleiste und Menüleiste). Zusätzlich enthält sowohl A_EventInfo als auch ErrorLevel eine der folgenden Zahlen:
Ein Skript kann GuiSize verwenden, um Steuerelemente neu zu positionieren und größer/kleiner zu machen, wenn der Benutzer die Größe des Fensters ändert. Um diesen Vorgang zu vereinfachen, können Sie AutoXYWH() von tmplinshi und toralf verwenden.
Beim Ändern der Fenstergröße (auch via Skript) kann es vorkommen, dass GuiSize nicht sofort aufgerufen wird. Wie jedes Fensterereignis wird GuiSize erst aufgerufen, wenn der aktuelle Thread unterbrechbar wird. Gehen Sie wie folgt vor, um sicherzustellen, dass GuiSize beim Ändern der Fenstergröße sofort aufgerufen wird:
Critical Off ; Selbst wenn Critical On nie verwendet wurde. Sleep -1
[v1.1.22.05+]: Gui Show macht automatisch ein Sleep -1
, demzufolge muss in diesem Fall kein Sleep aufgerufen werden.
[v1.1.20+]: Wenn GuiSize eine Funktion ist, akzeptiert sie folgende Parameter:
GuiSize(GuiHwnd, EreignisInfo, Breite, Höhe)
Wird gestartet, wenn der Benutzer mit der rechten Maustaste irgendwo im Fenster klickt (außer Titelleiste und Menüleiste). Das Ereignis wird auch gestartet, wenn der Benutzer Menü oder Umschalt+F10 drückt. Im Gegensatz zu den meisten anderen GUI-Labels können mehrere GuiContextMenu-Threads zur selben Zeit aktiv sein. GuiContextMenu kann die folgenden internen Variablen verwenden:
Menu, MeinKontext, Show, %A_GuiX%, %A_GuiY%
). Die Koordinaten sind relativ zur linken oberen Ecke des Fensters.Hinweis: Da Edit und MonthCal über ein eigenes Kontextmenü verfügen, kann in solchen Steuerelementen kein GuiContextMenu-Ereignis via Rechtsklick gestartet werden.
[v1.1.20+]: Wenn GuiContextMenu eine Funktion ist, akzeptiert sie folgende Parameter:
GuiContextMenu(GuiHwnd, ElementHwnd, EreignisInfo, IstRechtsklick, X, Y)
ElementHwnd ist leer, wenn das Ereignis nicht von einem Steuerelement stammt. IstRechtsklick ist 1 (true), wenn A_GuiEvent das Wort RightClick enthält.
Wird gestartet, wenn Dateien/Ordner während eines Ziehen-und-Ablegen-Vorgangs auf das Fenster abgelegt werden (wenn das Label aber bereits läuft, werden Ablege-Ereignisse ignoriert). GuiDropFiles kann die folgenden internen Variablen verwenden:
Mit einer parsenden Schleife können einzelne Dateien wie folgt extrahiert werden:
; BEISPIEL #1: Loop, Parse, A_GuiEvent, `n { MsgBox, 4,, Datei Nr. %A_Index% ist:`n%A_LoopField%.`n`nWeiter? IfMsgBox, No, break } ; BEISPIEL #2: Um nur die erste Datei zu extrahieren, gehen Sie wie folgt vor: Loop, Parse, A_GuiEvent, `n { ErsteDatei := A_LoopField break } ; BEISPIEL #3: Um die Dateien alphabetisch zu durchlaufen, gehen Sie wie folgt vor: DateiListe := A_GuiEvent Sort, DateiListe Loop, Parse, DateiListe, `n MsgBox Datei Nr. %A_Index% ist:`n%A_LoopField%.
Um das Ziehen-und-Ablegen-Feature bei einem Fenster vorübergehend zu deaktivieren, entfernen Sie den WS_EX_ACCEPTFILES-Style via Gui -E0x10
. Mit Gui +E0x10
kann es später wieder aktiviert werden.
[v1.1.20+]: Wenn GuiDropFiles eine Funktion ist, akzeptiert sie die im nächsten Beispiel gezeigten Parameter. ElementHwnd ist leer, wenn Dateien auf die GUI selbst abgelegt wurden. DateiArray ist ein Array (Objekt) mit Dateinamen, mit dem z.B. via DateiArray[1]
die erste Datei abgerufen oder via DateiArray.MaxIndex()
die Anzahl der Dateien zurückgegeben werden kann. Mit einer For-Schleife können die Dateien einzeln durchgegangen werden:
GuiDropFiles(GuiHwnd, DateiArray, ElementHwnd, X, Y) { for i, Datei in DateiArray MsgBox Datei %i% ist:`n%Datei% }
Andere Arten von GUI-Ereignissen können via OnMessage() erkannt und verarbeitet werden. Zum Beispiel kann ein Skript jedes Mal eine kontextabhängige Hilfe via Tooltip anzeigen, wenn der Benutzer den Mauszeiger über bestimmte Steuerelemente im Fenster bewegt. Siehe dazu das GUI-Tooltip-Beispiel.
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:
Gui, MeineGui:Add, Text,, Text für das Über-Fenster. Gui, MeineGui:Show
Gui MeineGui:Default
kann verwendet werden, um das obige Präfix "MeineGui:" zu vermeiden. Außerdem kann das Präfix in einem GUI-Thread weggelassen werden, das mit demselben Fenster arbeitet, das diesen Thread gestartet hat.
[v1.1.03+]: GUI-Namen müssen den Richtlinien zum Erstellen von Variablennamen entsprechen. Jede Nummer größer als 99 oder länger als zwei Zeichen (z.B. 0x01) wird automatisch als HWND-Nummer (eindeutige ID) einer GUI behandelt. Wenn diese GUI nicht existiert, wird der Befehl fehlschlagen. Die Anzahl der Fenster, die erstellt werden können, wird nur durch die verfügbaren Systemressourcen begrenzt.
[v1.1.04+]: Mit Gui, New können beliebig viele namenlose GUI-Fenster erstellt werden.
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.
Jedes Mal, wenn ein GUI-Thread gestartet wird, ist das zuletzt gefundene Fenster dieses Threads zunächst das GUI-Fenster selbst. Dies ermöglicht Ihnen, FensterTitel und FensterText bei Fenster- und Steuerelementbefehlen wie WinMove, WinHide, WinSet, WinSetTitle und ControlGetFocus wegzulassen, um mit dem GUI-Fenster selbst zu arbeiten (sogar wenn es versteckt ist).
Klickt man auf ein Steuerelement, das gerade ein g-Label aufgrund eines vorherigen Klicks ausführt, wird das Ereignis verworfen. Um das zu verhindern, geben Sie Critical in der ersten Zeile der Subroutine an (allerdings werden dadurch auch andere Threads, wie z.B. das Drücken eines Hotkeys, gepuffert/verzögert).
Die internen Variablen A_Gui und A_GuiControl enthalten den Fensternamen und die ID des Steuerelements, das den aktuellen Thread gestartet hat. Weitere Informationen finden Sie unter A_Gui und A_GuiControl.
Um mehrere Ereignisse die gleiche Subroutine ausführen zu lassen, stapeln Sie einfach die entsprechenden Labelnamen übereinander. Zum Beispiel:
GuiEscape: GuiClose: ButtonCancel: ExitApp ; Alle Labels oben werden diesen Befehl ausführen.
Alle GUI-Threads verwenden vorerst die Standardwerte von Einstellungen wie SendMode. Diese Standardwerte können im automatischen Ausführungsbereich geändert werden.
Mit Tab kann der Tastaturfokus jeweils auf das nächste eingabefähige Steuerelement in einem GUI-Fenster gesetzt werden (Steuerelemente mit deaktiviertem Tabstop-Style werden übersprungen). Die Reihenfolge der Navigation richtet sich nach der Reihenfolge, in der die Steuerelemente ursprünglich hinzugefügt wurden. Wenn das Fenster zum ersten Mal angezeigt wird, bekommt das erste eingabefähige Steuerelement mit aktiviertem Tabstop-Style (den die meisten standardmäßig haben) den Tastaturfokus.
Bestimmte Steuerelemente können ein Und-Zeichen (&) enthalten, um einen Tastaturkurzbefehl zu erstellen, der im Text des Steuerelements je nach Systemeinstellung als unterstrichenes Zeichen dargestellt wird. Um einen solchen Tastaturkurzbefehl auszulösen, muss der Benutzer Alt gedrückt halten und dann das entsprechende Zeichen auf der Tastatur drücken. Drückt man den Tastaturkurzbefehl bei Button-, CheckBox- oder Radio-Steuerelementen, ist der Effekt das gleiche wie, als würde man das Steuerelement anklicken. Drückt man den Tastaturkurzbefehl bei GroupBox- oder Text-Steuerelementen, springt der Tastaturfokus auf das erste danach erstellte eingabefähige Steuerelement mit aktivem Tabstop-Style. Wenn mehrere Steuerelemente den gleichen Tastaturkurzbefehl verwenden und drückt man diesen, springt der Tastaturfokus zwischen diesen Steuerelementen abwechselnd hin und her.
Um ein direkt geschriebenes Und-Zeichen in einem der oben genannten Steuerelementen anzuzeigen, geben Sie wie folgt zwei aufeinanderfolgende Und-Zeichen an: Gui, Add, Button,, Speichern && Beenden
.
Ein GUI-Fenster verwendet als Symbol das Tray-Symbol, welches zum Zeitpunkt der Erstellung des Fensters wirksam war. Daher muss, wenn ein anderes Symbol angezeigt werden soll, das Tray-Symbol vor der Erstellung des Fensters geändert werden. Zum Beispiel: Menu, Tray, Icon, MeinSymbol.ico
. Es ist auch möglich, ein Fenster mit einem anderen großen Symbol zu versehen (das große Symbol wird im Alt-Tab-Fenster angezeigt). Zum Beispiel mit LoadPicture() und SendMessage:
SymbolGröße := 32 ; Die ideale Größe für Alt-Tab variiert je nach System und Windows-Version. hIcon := LoadPicture("Mein Symbol.ico", "Icon1 w" SymbolGröße " h" SymbolGröße, BildTyp) Gui +LastFound SendMessage 0x0080, 1, hIcon ; 0x0080 ist WM_SETICON; und 1 bedeutet ICON_BIG (0 wäre ICON_SMALL). Gui Show
Aufgrund von Einschränkungen in Windows XP und höher werden CheckBox-, Radio- und GroupBox-Steuerelemente mit benutzerdefinierter Textfarbe im klassischen Design dargestellt.
Siehe auch: Margin (Abstände innerhalb eines Fensters).
GuiControl und GuiControlGet können verwendet werden, um mit einzelnen Steuerelementen in einem GUI-Fenster zu arbeiten.
Jedes GUI-Fenster kann bis zu 11000 Steuerelemente enthalten. Aber Vorsicht: Bei mehr als 5000 Steuerelementen kann das System instabil werden, abhängig vom Typ des Steuerelements.
Skripte, die den GUI-Befehl irgendwo verwenden, sind automatisch persistent (selbst wenn der GUI-Befehl nie ausgeführt wird). Außerdem erlauben sie standardmäßig nur eine aktive Instanz von sich selbst, was aber mit der #SingleInstance-Direktive geändert werden kann.
GuiControl, GuiControlGet, Menu, Steuerelemente, ListView, TreeView, Control, ControlGet, SplashImage, MsgBox, FileSelectFile, FileSelectFolder
Erstellt ein Popup-Fenster ähnlich wie SplashTextOn.
Gui, +AlwaysOnTop +Disabled -SysMenu +Owner ; +Owner verhindert eine Taskleistenschaltfläche. Gui, Add, Text,, Beliebiger Anzeigetext. Gui, Show, NoActivate, Fenstertitel ; NoActivate verhindert, dass ein anderes Fenster seinen Aktivzustand verliert.
Erstellt ein einfaches Eingabefenster zum Abfragen des Vor- und Nachnamens.
Gui, Add, Text,, Vorname: Gui, Add, Text,, Nachname: Gui, Add, Edit, vVorname ym ; Die ym-Option beginnt eine neue Spalte für Steuerelemente. Gui, Add, Edit, vNachname Gui, Add, Button, default, OK ; Das ButtonOK-Label (falls vorhanden) wird ausgeführt, wenn die Schaltfläche gedrückt wird. Gui, Show,, Einfaches Eingabebeispiel return ; Ende des automatischen Ausführungsbereichs. Das Skript ist im Leerlauf, bis der Benutzer etwas tut. GuiClose: ButtonOK: Gui, Submit ; Benutzereingaben in die Steuerelementvariablen speichern. MsgBox Sie haben "%Vorname% %Nachname%" eingegeben. ExitApp
Erstellt ein Tab-Steuerelement mit mehreren Tabs, die jeweils verschiedene Steuerelemente für Interaktionszwecke enthalten.
Gui, Add, Tab2,, Erster Tab|Zweiter Tab|Dritter Tab ; Tab2 statt Tab benötigt [v1.0.47.05+].
Gui, Add, CheckBox, vMeineCheckBox, Kontrollkästchen
Gui, Tab, 2
Gui, Add, Radio, vMeinRadio, Optionsfeld 1
Gui, Add, Radio,, Optionsfeld 2
Gui, Tab, 3
Gui, Add, Edit, vMeinEdit r5 ; r5 bedeutet 5 Zeilen hoch.
Gui, Tab ; d.h. danach hinzugefügte Steuerelemente gehören nicht zum Tab-Steuerelement.
Gui, Add, Button, default xm, OK ; xm positioniert die Schaltfläche in die untere linke Ecke.
Gui, Show
return
ButtonOK:
GuiClose:
GuiEscape:
Gui, Submit ; Inhalt aller Steuerelemente in ihre Variablen speichern.
MsgBox Ihre Eingabe:`n%MeineCheckBox%`n%MeinRadio%`n%MeinEdit%
ExitApp
Erstellt eine ListBox mit Dateien aus einem Verzeichnis.
Gui, Add, Text,, Eine Datei zum Ausführen auswählen.`nDrücken Sie ESCAPE oder schließen Sie das Fenster, um den Vorgang abzubrechen. Gui, Add, ListBox, vMeineListBox gMeineListBox w640 r10 Gui, Add, Button, Default, OK Loop, C:\*.* ; Ordner und Platzhaltermuster je nach Bedarf anpassen. { GuiControl,, MeineListBox, %A_LoopFileFullPath% } Gui, Show return MeineListBox: if (A_GuiEvent != "DoubleClick") return ; Andernfalls erfolgte ein Doppelklick auf einen Listeneintrag, ; also wie OK-Drücken behandeln und in den nächsten Label fallen. ButtonOK: GuiControlGet, MeineListBox ; Aktuelle Auswahl in der ListBox abrufen. MsgBox, 4,, Wollen Sie wirklich die folgende Datei öffnen?`n`n%MeineListBox% IfMsgBox, No return ; Andernfalls versuchen zu starten: Run, %MeineListBox%,, UseErrorLevel if (ErrorLevel = "ERROR") MsgBox Die angegebene Datei konnte nicht gestartet werden. Scheinbar fehlt das entsprechende Programm. return GuiClose: GuiEscape: ExitApp
Zeigt jedes Mal eine kontextabhängige Hilfe via Tooltip an, wenn der Benutzer den Mauszeiger über ein bestimmtes Steuerelement bewegt.
Gui, Add, Edit, vMeinEdit MeinEdit_TT := "Der Tooltip für das Steuerelement mit der Variable MeinEdit" Gui, Add, DropDownList, vMeineDDL, Rot|Grün|Blau MeineDDL_TT := "Wählen Sie eine Farbe aus." Gui, Add, CheckBox, vMeineCheckBox, Dieses Steuerelement hat keinen Tooltip. Gui, Show OnMessage(0x0200, "WM_MOUSEMOVE") return WM_MOUSEMOVE() { static AktStrlmnt, VorStrlmnt, _TT ; _TT bleibt für unteren ToolTip leer. AktStrlmnt := A_GuiControl if (AktStrlmnt != VorStrlmnt and not InStr(AktStrlmnt, " ")) { ToolTip ; Vorherigen Tooltip verstecken. SetTimer, ZeigeToolTip, 1000 VorStrlmnt := AktStrlmnt } return ZeigeToolTip: SetTimer, ZeigeToolTip, Off ToolTip % %AktStrlmnt%_TT ; Erstes Prozentzeichen erzwingt einen Ausdruck. SetTimer, EntferneToolTip, 3000 return EntferneToolTip: SetTimer, EntferneToolTip, Off ToolTip return } GuiClose: ExitApp
Erstellt eine Bildschirmanzeige (OSD) via transparentem Fenster.
UnsichtbareFarbe := "EEAA99" ; Kann eine beliebige RGB-Farbe sein (wird weiter unten transparent gemacht). Gui +LastFound +AlwaysOnTop -Caption +ToolWindow ; +ToolWindow verhindert Taskleistenschaltfläche und Alt-Tab-Zugriff. Gui, Color, %UnsichtbareFarbe% Gui, Font, s32 ; Große Schriftgröße setzen (32 Punkte). Gui, Add, Text, vMeinText cLime, XXXXX YYYYY ; XX & YY dienen zum automatischen Anpassen der Fenstergröße. ; Macht alle Pixel dieser Farbe unsichtbar und den Text selbst transparent (150): WinSet, TransColor, %UnsichtbareFarbe% 150 SetTimer, OSDAktualisieren, 200 Gosub, OSDAktualisieren ; Erste Aktualisierung sofort machen, anstatt auf den Timer zu warten. Gui, Show, x0 y400 NoActivate ; NoActivate verhindert, dass ein anderes Fenster seinen Aktivzustand verliert. return OSDAktualisieren: MouseGetPos, MausX, MausY GuiControl,, MeinText, X%MausX%, Y%MausY% return
Erstellt einen animierten Fortschrittsbalken auf einem Hintergrundbild.
Gui, Color, White Gui, Add, Picture, x0 y0 h350 w450, %A_WinDir%\system32\ntimage.gif Gui, Add, Button, Default xp+20 yp+250, Animation starten Gui, Add, Progress, vMeinProgress w416 Gui, Add, Text, vMeinText wp ; wp bedeutet "vorherige Breite verwenden". Gui, Show return ButtonAnimationStarten: Loop, %A_WinDir%\*.* { if (A_Index > 100) break GuiControl,, MeinProgress, %A_Index% GuiControl,, MeinText, %A_LoopFileName% Sleep 50 } GuiControl,, MeinText, Animation beendet. return GuiClose: ExitApp
Erstellt einen einfachen Bildbetrachter.
Gui, +Resize Gui, Add, Button, default, Neues Bild &laden Gui, Add, Radio, ym+5 x+10 vOption checked, &Originalgröße Gui, Add, Radio, ym+5 x+10, &Kompletter Bildschirm Gui, Add, Pic, xm vPic Gui, Show return ButtonNeuesBildLaden: FileSelectFile, Datei,,, Bild auswählen:, Bilder (*.gif; *.jpg; *.bmp; *.png; *.tif; *.ico; *.cur; *.ani; *.exe; *.dll) if not Datei return Gui, Submit, NoHide ; Die Werte der Radio-Steuerelemente speichern. if (Option = 1) ; Bild mit aktueller Größe anzeigen. { Breite := 0 Höhe := 0 } else ; Zweites Optionsfeld ausgewählt: Bildgröße an Bildschirmgröße anpassen. { Breite := A_ScreenWidth - 28 ; Minus 28, um Platz für Rahmen und Innenabstand zu schaffen. Höhe := -1 ; "Seitenverhältnis beibehalten" erscheint sinnvoll. } GuiControl,, Pic, *w%Breite% *h%Höhe% %Datei% ; Bild laden. Gui, Show, xCenter y0 AutoSize, %Datei% ; Fenstergröße an Bildgröße anpassen. return GuiClose: ExitApp
Erstellt einen einfachen Texteditor mit Menüleiste.
; Untermenüs für die Menüleiste erstellen: Menu, DateiMenü, Add, &Neu, DateiNeu Menu, DateiMenü, Add, Ö&ffnen..., DateiÖffnen Menu, DateiMenü, Add, &Speichern, DateiSpeichern Menu, DateiMenü, Add, Speichern &unter..., DateiSpeichernUnter Menu, DateiMenü, Add ; Trennlinie. Menu, DateiMenü, Add, &Beenden, DateiBeenden Menu, HilfeMenü, Add, Inf&o, HilfeInfo ; Untermenüs in die Menüleiste einfügen: Menu, MeineMenüleiste, Add, &Datei, :DateiMenü Menu, MeineMenüleiste, Add, &?, :HilfeMenü ; Fenster mit der Menüleiste ausstatten: Gui, Menu, MeineMenüleiste ; Haupt-Eingabefeld erstellen und Fenster anzeigen: Gui, +Resize ; Größe des Fensters veränderbar machen. Gui, Add, Edit, vHauptEdit WantTab W600 R20 Gui, Show,, Unbenannt AktuelleDateiName := "" ; Bedeutet, dass keine aktuelle Datei vorhanden ist. return DateiNeu: GuiControl,, HauptEdit ; Eingabefeld leeren. return DateiÖffnen: Gui +OwnDialogs ; Benutzer zwingen, das FileSelectFile-Dialogfenster zu schließen, bevor er zum Hauptfenster zurückkehren kann. FileSelectFile, AusgewählteDateiName, 3,, Datei öffnen, Text-Dokumente (*.txt) if not AusgewählteDateiName ; Keine Datei ausgewählt. return Gosub DateiLesen return DateiLesen: ; Der Aufrufer hat AusgewählteDateiName bereits für uns gesetzt. FileRead, HauptEdit, %AusgewählteDateiName% ; Inhalt der Datei lesen und in die Variable speichern. if ErrorLevel { MsgBox "%AusgewählteDateiName%" konnte nicht geöffnet werden. return } GuiControl,, HauptEdit, %HauptEdit% ; Text in das Steuerelement einfügen. AktuelleDateiName := AusgewählteDateiName Gui, Show,, %AktuelleDateiName% ; Dateinamen in der Titelleiste anzeigen. return DateiSpeichern: if not AktuelleDateiName ; Noch kein Dateiname ausgewählt, also "Speichern unter...". Goto DateiSpeichernUnter Gosub AktuelleDateiSpeichern return DateiSpeichernUnter: Gui +OwnDialogs ; Benutzer zwingen, das FileSelectFile-Dialogfenster zu schließen, bevor er zum Hauptfenster zurückkehren kann. FileSelectFile, AusgewählteDateiName, S16,, Datei speichern, Text-Dokumente (*.txt) if not AusgewählteDateiName ; Keine Datei ausgewählt. return AktuelleDateiName := AusgewählteDateiName Gosub AktuelleDateiSpeichern return AktuelleDateiSpeichern: ; Der Aufrufer hat sichergestellt, dass AktuelleDateiName nicht leer ist. if FileExist(AktuelleDateiName) { FileDelete %AktuelleDateiName% if ErrorLevel { MsgBox Überschreiben der Datei "%AktuelleDateiName%" fehlgeschlagen. return } } GuiControlGet, HauptEdit ; Inhalt des Eingabefeldes abrufen. FileAppend, %HauptEdit%, %AktuelleDateiName% ; Inhalt in eine Datei speichern. ; Bei Erfolg den Dateinamen in der Titelleiste anzeigen (falls es mit DateiSpeichernUnter aufgerufen wurde): Gui, Show,, %AktuelleDateiName% return HilfeInfo: Gui, Info:+owner1 ; Hauptfenster (Gui #1) zum Elternfenster des Info-Fensters machen. Gui +Disabled ; Interaktion mit dem Hauptfenster verbieten. Gui, Info:Add, Text,, Beliebiger Text. Gui, Info:Add, Button, Default, OK Gui, Info:Show return InfoButtonOK: ; Dieser Abschnitt gilt für das Info-Fenster oben. InfoGuiClose: InfoGuiEscape: Gui, 1:-Disabled ; Interaktion mit dem Hauptfenster erlauben (muss vor dem nächsten Schritt erfolgen). Gui Destroy ; Info-Fenster zerstören. return GuiDropFiles: ; Ziehen & Ablegen unterstützen. Loop, Parse, A_GuiEvent, `n { AusgewählteDateiName := A_LoopField ; Nur die erste Datei nehmen (sofern mehrere Dateien vorhanden sind). break } Gosub DateiLesen return GuiSize: if (ErrorLevel = 1) ; Das Fenster wurde minimiert. Keine Aktion notwendig. return ; Andernfalls wurde das Fenster maximiert oder dessen Größe geändert. Größe des Eingabefeldes entsprechend anpassen. NeueBreite := A_GuiWidth - 20 NeueHöhe := A_GuiHeight - 20 GuiControl, Move, HauptEdit, W%NeueBreite% H%NeueHöhe% return DateiBeenden: ; Benutzer hat "Beenden" in DateiMenü ausgewählt. GuiClose: ; Benutzer hat das Fenster geschlossen. ExitApp