Zeigt einen bestimmten Text in einem kleinen Fenster an, das eine oder mehrere Schaltflächen enthält (z.B. Ja und Nein).
MsgBox Text, Titel, Optionen Ergebnis := MsgBox(Text, Titel, Optionen)
Typ: Zeichenkette
Wenn weggelassen und "OK" die einzige Schaltfläche ist, wird standardmäßig die Zeichenkette "Press OK to continue." verwendet. Wenn in jedem anderen Fall weggelassen, wird standardmäßig eine leere Zeichenkette verwendet. Andernfalls geben Sie den Text an, der im Mitteilungsfenster angezeigt werden soll.
Mit Escapesequenzen können Sonderzeichen dargestellt werden. Zum Beispiel kann mit einem Zeilenvorschubzeichen (`n) die aktuelle Zeile beendet und eine neue begonnen werden. Entsprechend würde Text1`n`nText2
eine Leerzeile zwischen Text1 und Text2 erzeugen.
Wenn Text relativ lang ist, kann es via Fortsetzungsbereich in mehrere kurze Zeilen aufgeteilt werden, um die Übersichtlichkeit und Wartbarkeit des Skripts zu verbessern.
Typ: Zeichenkette
Wenn weggelassen, wird standardmäßig der aktuelle Wert von A_ScriptName verwendet. Andernfalls geben Sie den Titel des Mitteilungsfensters an.
Typ: Zeichenkette
Wenn leer oder weggelassen, wird standardmäßig 0 verwendet (nur eine OK-Schaltfläche anzeigen). Andernfalls geben Sie eine Kombination (Summe) von Werten oder eine Zeichenkette von einer oder mehreren Optionen aus den unteren Tabellen an, um den Typ des Mitteilungsfensters und die möglichen Schaltflächenkombinationen zu bestimmen.
Zusätzlich können beliebig viele der folgenden Optionen angegeben werden:
Owner: Um ein übergeordnetes Fenster für das Mitteilungsfenster zu bestimmen, verwenden Sie das Wort Owner gefolgt von einer HWND-Nummer (eindeutige ID).
T: Timeout (Zeitlimit). Um das Mitteilungsfenster automatisch zu schließen, wenn der Benutzer es nicht innerhalb einer bestimmten Zeit geschlossen hat, verwenden Sie den Buchstaben T gefolgt von einem Zeitlimit in Sekunden, das einen Dezimalpunkt enthalten kann. Wenn ein Zeitlimit höher als 2147483 (24,8 Tage) angegeben ist, wird es automatisch auf 2147483 zurückgesetzt. Wenn das Mitteilungsfenster das Zeitlimit überschreitet, ist der Rückgabewert das Wort Timeout.
Der Optionen-Parameter kann entweder eine Kombination (Summe) von Werten aus den folgenden Gruppen sein, die direkt an die MessageBox-Funktion des Betriebssystems übergeben wird, oder eine Zeichenkette von beliebig vielen Optionen (nicht Groß-/Kleinschreibung-sensitiv), die mit mindestens einem Leer- oder Tabulatorzeichen voneinander getrennt sind. Die Zeichenkette kann auch beliebig viele numerische Optionen enthalten.
Um zu bestimmen, welche Schaltflächen im Mitteilungsfenster angezeigt werden, addieren Sie einen der folgenden Werte:
Funktion | Dez | Hex | Zkette |
---|---|---|---|
OK | 0 | 0x0 | OK oder O |
OK, Abbrechen | 1 | 0x1 | OKCancel , O/C oder OC |
Abbrechen, Wiederholen, Ignorieren | 2 | 0x2 | AbortRetryIgnore , A/R/I oder ARI |
Ja, Nein, Abbrechen | 3 | 0x3 | YesNoCancel , Y/N/C oder YNC |
Ja, Nein | 4 | 0x4 | YesNo , Y/N oder YN |
Wiederholen, Abbrechen | 5 | 0x5 | RetryCancel , R/C oder RC |
Abbrechen, Wiederholen, Weiter | 6 | 0x6 | CancelTryAgainContinue , C/T/C oder CTC |
Um ein Symbol im Mitteilungsfenster darzustellen, addieren Sie einen der folgenden Werte:
Funktion | Dez | Hex | Zkette |
---|---|---|---|
Handsymbol (Stopp / Fehler) | 16 | 0x10 | Iconx |
Fragezeichensymbol | 32 | 0x20 | Icon? |
Ausrufezeichensymbol | 48 | 0x30 | Icon! |
Sternchensymbol (Info) | 64 | 0x40 | Iconi |
Um die Standardschaltfläche zu bestimmen, addieren Sie einen der folgenden Werte:
Funktion | Dez | Hex | Zkette |
---|---|---|---|
Macht die zweite Schaltfläche zur Standardschaltfläche | 256 | 0x100 | Default2 |
Macht die dritte Schaltfläche zur Standardschaltfläche | 512 | 0x200 | Default3 |
Macht die vierte Schaltfläche zur Standardschaltfläche (benötigt die Hilfe-Schaltfläche) |
768 | 0x300 | Default4 |
Um die Modalität des Dialogfensters zu bestimmen, addieren Sie einen der folgenden Werte:
Funktion | Dez | Hex | Zkette |
---|---|---|---|
System-Modal (immer im Vordergrund) | 4096 | 0x1000 | N/A |
Task-Modal | 8192 | 0x2000 | N/A |
Immer im Vordergrund (WS_EX_TOPMOST-Style) (ähnlich wie System Modal, aber ohne Titelleistensymbol) |
262144 | 0x40000 | N/A |
Um sonstige Optionen anzugeben, addieren Sie einen oder mehrere der folgenden Werte:
Funktion | Dez | Hex | Zkette |
---|---|---|---|
Fügt eine Hilfe-Schaltfläche hinzu (siehe Bemerkungen) | 16384 | 0x4000 | N/A |
Macht den Text rechtsbündig | 524288 | 0x80000 | N/A |
Rechts-nach-Links-Leselayout für Hebräisch / Arabisch | 1048576 | 0x100000 | N/A |
Typ: Zeichenkette
Diese Funktion gibt eine der folgenden Zeichenketten zurück, die die zuletzt gedrückte Schaltfläche repräsentiert:
Wenn das Dialogfenster nicht angezeigt werden konnte, wird eine leere Zeichenkette zurückgegeben. Dies tritt normalerweise nur auf, wenn das MsgBox-Limit erreicht wurde, kann aber auch in anderen Ausnahmefällen auftreten.
Bei Misserfolg wird ein Error ausgelöst, z.B. wenn die Optionen ungültig sind, das MsgBox-Limit erreicht wurde oder das Mitteilungsfenster aus anderen Gründen nicht angezeigt werden konnte.
Ein typisches Mitteilungsfenster sieht wie folgt aus:
Verwenden Sie den Rückgabewert der Funktion, um festzustellen, welche Schaltfläche der Benutzer gedrückt hat. Zum Beispiel:
Ergebnis := MsgBox("Möchten Sie fortfahren? (drücken Sie Ja oder Nein)",, "YesNo") if Ergebnis = "Yes" MsgBox "Sie haben Ja gedrückt." else MsgBox "Sie haben Nein gedrückt." if MsgBox("Wiederholen oder Abbrechen?",, "R/C") = "Retry" MsgBox("Sie haben Wiederholen gedrückt.")
Um die Namen der Schaltflächen anzupassen, siehe Schaltflächennamen der MsgBox ändern.
Hinweis: Sie können Strg+C in einem aktiven Mitteilungsfenster drücken, um dessen Text in die Zwischenablage zu kopieren. Diese Methode kann auch bei AutoHotkey-fremden Mitteilungsfenstern angewendet werden.
MsgBox mit einem GUI-Fenster verwenden: Ein GUI-Fenster kann ein modales Mitteilungsfenster mittels OwnDialogs-Option darstellen. Ein modales Mitteilungsfenster hindert den Benutzer daran, mit dem GUI-Fenster zu interagieren, bis er das Mitteilungsfenster wieder schließt. In diesem Fall können die Optionen System-Modal oder Task-Modal weggelassen werden.
Wenn die OwnDialogs-Option nicht aktiv ist, kann die Task-Modal-Option (8192) verwendet werden, um die Interaktion mit allen Skriptfenstern zu unterbinden, bis der Benutzer das Mitteilungsfenster schließt.
Wenn die OwnerHWND
-Option angegeben ist, hat sie Vorrang vor allen anderen Einstellungen. HWND kann die HWND-Nummer (eindeutige ID) eines beliebigen Fensters sein, auch eines Fensters, das nicht zum Skript gehört.
Die Hilfe-Schaltfläche: Wenn die Hilfe-Schaltfläche-Option (16384) in Optionen vorhanden ist, funktioniert die Hilfe-Schaltfläche nur unter den folgenden Bedingungen:
OnMessage(0x0053, WM_HELP)
. Dies bewirkt, dass die WM_HELP-Funktion aufgerufen wird, sobald der Benutzer die Hilfe-Schaltfläche drückt. Diese Funktion könnte z.B. ein anderes GUI-Fenster oder Mitteilungsfenster anzeigen, das Hilfestellungen für den Benutzer enthält.Die Schließen-Schaltfläche (in der Titelleiste des Mitteilungsfensters): Da das Mitteilungsfenster ein vom Betriebssystem bereitgestelltes Feature ist, hängt die Verfügbarkeit und das Verhalten der X-Schaltfläche davon ab, welche Schaltflächen vorhanden sind. Wenn nur die OK-Schaltfläche vorhanden ist, wäre das Drücken von X das gleiche wie, als hätte man OK gedrückt. Andernfalls ist die X-Schaltfläche deaktiviert, es sei denn, die Abbrechen-Schaltfläche ist vorhanden, dann wäre das Drücken von X das gleiche wie, als hätte man Abbrechen gedrückt.
Maximal 7 aktive Aufrufe: Der Thread, der ein Mitteilungsfenster anzeigt, kann normalerweise unterbrochen werden, damit der neue Thread sein eigenes Mitteilungsfenster anzeigen kann, bevor der vorherige Aufruf zurückkehrt. Es sind maximal 7 aktive MsgBox-Aufrufe erlaubt. Jeder Aufruf nach dem siebten löst einen Error aus. Beachten Sie, dass ein MsgBox-Aufruf in einem unterbrochenen Thread nicht zum Aufrufer zurückkehrt, bis der Thread fortgesetzt wird.
InputBox, FileSelect, DirSelect, ToolTip, Gui-Objekt
Zeigt ein Mitteilungsfenster mit einem bestimmten Text an. Eine schnelle und einfache Möglichkeit, Informationen anzuzeigen. Der Benutzer kann eine OK-Schaltfläche drücken, um das Mitteilungsfenster zu schließen und die Ausführung fortzusetzen.
MsgBox "Das ist eine Zeichenkette."
Zeigt ein Mitteilungsfenster mit einem bestimmten Text und Titel an.
MsgBox "Diese MsgBox hat einen benutzerdefinierten Titel.", "Ein benutzerdefinierter Titel"
Zeigt ein Mitteilungsfenster mit dem Standardtext an. Überwiegend nützlich für Debugging-Zwecke, z.B. um schnell einen Haltepunkt im Skript zu setzen.
MsgBox ; "Press OK to continue."
Zeigt ein Mitteilungsfenster mit einem bestimmten Text, einem Titel und einem Infosymbol an. Außerdem wird ein Fortsetzungsbereich verwendet, um den mehrzeiligen Text übersichtlicher darzustellen.
MsgBox " ( Der erste Parameter wird als Mitteilung angezeigt. Der zweite Parameter ist der Fenstertitel. Der dritte Parameter bestimmt den Typ des Mitteilungsfensters. )", "Fenstertitel", "iconi"
Verwenden Sie den Rückgabewert, um festzustellen, welche MsgBox-Schaltfläche der Benutzer zuletzt gedrückt hat. Beachten Sie, dass in diesem Fall der MsgBox-Funktionsaufruf mit runden Klammern angegeben werden muss.
Ergebnis := MsgBox("Möchten Sie fortfahren? (drücken Sie Ja oder Nein)",, "YesNo") if (Ergebnis = "No") return
Verwenden Sie die T-Option (Zeitlimit), um das Mitteilungsfenster nach einer bestimmten Anzahl von Sekunden automatisch zu schließen.
Ergebnis := MsgBox("Diese MsgBox schließt sich automatisch in 5 Sekunden. Weiter?",, "Y/N T5") if (Ergebnis = "Timeout") MsgBox "Sie haben innerhalb der 5 Sekunden weder JA noch NEIN gedrückt." else if (Ergebnis = "No") return
Fügen Sie eine Variable oder einen Teilausdruck in die Mitteilung ein. Siehe auch: Verkettung
var := 10 MsgBox "Der Initialwert ist: " var MsgBox "Das Ergebnis ist: " var * 2 MsgBox Format("Das Ergebnis ist: {1}", var * 2)