Zeigt ein Standard-Dialogfenster an, mit dem der Benutzer eine oder mehrere Dateien öffnen oder speichern kann.
FileSelectFile, AusgabeVar , Optionen, RootVerz\DateiName, Titel, Filter
Name der Ausgabevariable, in der die vom Benutzer ausgewählten Dateinamen gespeichert werden sollen. Diese Variable wird leer gemacht, wenn der Benutzer das Dialogfenster abbricht (bzw. keine Datei auswählen möchte).
Lässt man diesen Parameter weg, wird standardmäßig 0 verwendet; das heißt, dass keine der unten genannten Optionen wirksam ist.
M: Mehrfachauswahl. Geben Sie den Buchstaben M an, damit der Benutzer mehr als eine Datei auswählen kann - via UMSCHALT oder STRG modifizierte Klicks, oder anderweitig. Nach M kann optional eine der unten genannten Nummern erfolgen (zum Beispiel wäre sowohl M als auch M1 gültig). Das Beispiel ganz unten zeigt, wie einzelne Dateien extrahiert werden können.
S: Speichern-Dialogfenster. Geben Sie den Buchstaben S an, um die Öffnen-Schaltfläche mit einer Speichern-Schaltfläche zu ersetzen. Nach S kann optional eine der unten genannten Nummern (oder die Summe von mehreren Nummern) erfolgen (zum Beispiel wäre sowohl S als auch S16 gültig).
Die folgenden Nummern können auch ohne M oder S angegeben werden. Um mehrere davon in Kraft zu setzen, müssen sie addiert werden. Damit zum Beispiel 1 und 2 aktiv sind, muss die Nummer 3 angegeben werden.
1: Datei muss vorhanden sein
2: Pfad muss vorhanden sein
8: Nachfragen, ob eine neue Datei erstellt werden soll
16: Nachfragen, ob die Datei überschrieben werden soll
32 [v1.0.43.09+]: Verknüpfungen (LNK-Dateien) werden wie sie sind ausgewählt, anstatt in ihre Ziele aufgelöst zu werden. Diese Option verhindert auch die Navigation in einen Ordner via Ordnerverknüpfung.
Beachten Sie, dass die Option 16 (nachfragen, ob die Datei überschrieben werden soll) nur vom Speichern-Dialogfenster unterstützt wird. Wenn Sie diese Option daher ohne Option 8 (nachfragen, ob eine neue Datei erstellt werden soll) angeben, wird auch die Option "S" wirksam. Entsprechend hat die Option 8 keinen Effekt, wenn die Option "S" vorhanden ist. Wenn Sie die Nummer 24 angeben, werden alle vom Dialogfenster unterstützten Nachfragen aktiviert.
Dieser Parameter kann ein oder beide der folgenden Elemente enthalten:
RootVerz: Das Root- bzw. Startverzeichnis. Wenn kein absoluter Pfad angegeben ist, wird das Verzeichnis als Unterordner des A_WorkingDir-Verzeichnisses vermutet. Wenn das Startverzeichnis weggelassen wird oder leer ist, entscheidet standardmäßig das Betriebssystem, welches Startverzeichnis angezeigt werden soll (es ist wahrscheinlich das Verzeichnis, das der Benutzer zuletzt via FileSelectFile ausgewählt hat). [v1.0.43.10+]: In Windows XP/2003 und höher kann auch ein CLSID-Wert wie ::{20d04fe0-3aea-1069-a2d8-08002b30309d}
(Arbeitsplatz/Computer) angegeben werden - in diesem Fall sollte jedes Unterverzeichnis nach dem CLSID-Wert mit einem umgekehrten Schrägstrich enden (ansonsten wird der Text nach dem letzten umgekehrten Schrägstrich als Dateiname interpretiert).
DateiName: Ein Dateiname, der standardmäßig im Eingabefeld des Dialogfensters angezeigt werden soll. Es wird nur der Dateiname angezeigt (ohne Pfad). Für die korrekte Darstellung des Dialogfensters muss sichergestellt werden, dass keine illegalen Zeichen vorhanden sind (wie /<|:").
Beispiele:
C:\Meine Bilder\Standard-Bildname.gif ; Sowohl RootVerz als auch DateiName vorhanden. C:\Meine Bilder ; Nur RootVerz vorhanden. Meine Bilder ; Nur RootVerz vorhanden, und es ist relativ zum aktuellen Arbeitsverzeichnis. Meine Datei ; Nur DateiName vorhanden (aber wenn "Meine Datei" als Ordner existiert, wird es als RootVerz vermutet).
Der Titel des Dateiauswahlfensters. Wenn dieser Parameter weggelassen wird oder leer ist, wird standardmäßig "Select File - %A_ScriptName%" (der Name des aktuellen Skripts) verwendet.
Gibt an, welche Dateitypen im Dialogfenster angezeigt werden sollen.
Beispiel: Dokumente (*.txt)
Beispiel: Audio (*.wav; *.mp2; *.mp3)
Lässt man diesen Parameter weg, ist der Filter standardmäßig auf "All Files (*.*)" gesetzt. Die Option "Text Documents (*.txt)" ist ebenfalls in der Dateityp-Auswahlliste des Dialogfensters verfügbar.
Ansonsten wird der Filter die angegebene Zeichenkette verwenden und zusätzlich die Option "All Files (*.*)" in der aufklappbaren Dateityp-Auswahlliste bereitstellen. Um mehr als eine Dateierweiterung in den Filter einzubinden, trennen Sie sie mit Semikolons, wie oben gezeigt.
[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 der Benutzer das Dialogfenster geschlossen hat, ohne eine Datei ausgewählt zu haben (z. B. durch Drücken der Schaltfläche "Abbrechen"), oder wenn das Betriebssystem sich weigert, das Dialogfenster anzuzeigen (selten). Ansonsten wird es auf 0 gesetzt.
Ein typisches Dateiauswahlfenster sieht wie folgt aus:
Wenn der Benutzer nichts ausgewählt hat (zum Beispiel weil er auf ABBRECHEN gedrückt hat), wird AusgabeVar leer gemacht.
Wenn die Mehrfachauswahl nicht aktiv ist, wird AusgabeVar auf einen Wert gesetzt, der den vollständigen Pfad und Namen der vom Benutzer ausgewählten Datei repräsentiert.
Wenn die M-Option (Mehrfachauswahl) aktiv ist, wird AusgabeVar auf eine Liste von Elementen gesetzt, die alle, außer das letzte, mit einem Zeilenumbruchszeichen (`n) enden. Das erste Element in der Liste ist der Pfad, den alle ausgewählten Dateien enthalten (dieser Pfad wird nur mit einem umgekehrten Schrägstrich enden, wenn es sich um ein Hauptverzeichnis wie C:\ handelt). Die anderen Elemente sind die ausgewählten Dateien (ohne Pfad). Zum Beispiel:
C:\Meine Dokumente\Neuer Ordner [dieser Pfad gilt für alle folgenden Dateien] test1.txt [das sind die reinen Dateinamen: keine Pfadangabe] test2.txt ... etc.
Das Beispiel ganz unten zeigt, wie diese Dateien einzeln extrahiert werden können.
Bei aktiver Mehrfachauswahl ist die Gesamtlänge aller ausgewählten Dateinamen auf 64 KB begrenzt. Dieser Grenzwert genügt in der Regel für mehrere tausend Dateien. Sollte dieser Wert dennoch überschritten werden, wird AusgabeVar leer gemacht.
Ein GUI-Fenster kann via Gui +OwnDialogs ein modales Dateiauswahlfenster anzeigen. Ein modales Dialogfenster hindert den Benutzer daran, mit dem GUI-Fenster zu interagieren, bis er das Dialogfenster wieder schließt.
Bekannte Einschränkung: Startet man ein Timer, während ein Dateiauswahlfenster angezeigt wird, werden alle darin durchgeführten Aktionen, die der Benutzer versucht auszulösen, bis zum Ende des Timers hinausgezögert. Um das zu umgehen, verzichten Sie entweder auf Timer mit komplexen Subroutinen, die eine lange Zeit in Anspruch nehmen, oder deaktivieren Sie alle Timer, während das Dialogfenster angezeigt wird:
Thread, NoTimers FileSelectFile, AusgabeVar Thread, NoTimers, false
[v1.0.25.06+]: Die Mehrfachauswahl-Option "4" ist veraltet. Allerdings wird diese Option aus Kompatibilitätsgründen mit älteren Skripten weiterhin wie vorgesehen funktionieren. Genauer gesagt, wenn der Benutzer nur eine Datei auswählt, wird AusgabeVar auf einen Wert gesetzt, der den vollständigen Pfad und Namen dieser Datei repräsentiert, gefolgt von einem Zeilenumbruchszeichen (`n). Wählt der Benutzer mehr als eine Datei aus, verhält sich diese Option wie die oben beschriebene M-Option, außer dass das letzte Element ebenfalls mit einem Zeilenumbruchszeichen (`n) endet.
FileSelectFolder, MsgBox, InputBox, ToolTip, GUI, CLSID-Liste, parsende Schleife, SplitPath
Das Betriebssystem bietet zudem Standard-Dialogfenster an, die der Benutzer zum Auswählen einer Farbe, einer Schriftart oder eines Symbols verwenden kann. Solche Dialogfenster können via DllCall() angezeigt werden, wie auf GitHub gezeigt.
Erlaubt dem Benutzer, eine existierende TXT- oder DOC-Datei auszuwählen.
FileSelectFile, AusgewählteDatei, 3, , Datei öffnen, Text-Dokumente (*.txt; *.doc) if (AusgewählteDatei = "") MsgBox, Der Benutzer hat nichts ausgewählt. else MsgBox, Der Benutzer hat folgendes ausgewählt:`n%AusgewählteDatei%
Ein CLSID-Beispiel. Erlaubt dem Benutzer, eine Datei im Papierkorb auszuwählen. Beachten Sie, dass dieses Beispiel nur in Windows XP/2003 oder niedriger funktioniert.
FileSelectFile, AusgabeVar,, ::{645ff040-5081-101b-9f08-00aa002f954e} ; Papierkorb.
Erlaubt dem Benutzer, mehrere existierende Dateien auszuwählen.
FileSelectFile, Dateien, M3 ; M3 = Mehrfachauswahl vorhandener Dateien. if (Dateien = "") { MsgBox, Der Benutzer hat Abbrechen gedrückt. return } Loop, parse, Dateien, `n { if (A_Index = 1) MsgBox, Die ausgewählten Dateien befinden sich alle in %A_LoopField%. else { MsgBox, 4, , Die nächste Datei ist %A_LoopField%. Weiter? IfMsgBox, No, break } } return