FileSelect

Zeigt ein Standarddialogfenster an, mit dem der Benutzer eine oder mehrere Dateien öffnen oder speichern kann.

AusgewählteDatei := FileSelect(Optionen, RootVerz\DateiName, Titel, Filter)

Parameter

Optionen

Typ: Zeichenkette oder Integer

Wenn leer oder weggelassen, wird standardmäßig 0 verwendet, was der Angabe keiner der folgenden Optionen entspricht. Andernfalls geben Sie eine Nummer oder einen der folgenden Buchstaben (optional gefolgt von einer Nummer) an. Zum Beispiel sind "M", 1 und "M1" gültig (aber nicht äquivalent).

D: Ordner (Verzeichnis) auswählen. Geben Sie den Buchstaben D an, um dem Benutzer die Auswahl eines Ordners anstelle einer Datei zu ermöglichen. Das Dialogfenster hat nahezu dieselben Features wie beim Auswählen einer Datei, unterstützt aber keine Filter (Filter muss leer sein oder weggelassen werden).

M: Mehrfachauswahl. Geben Sie den Buchstaben M an, um dem Benutzer die Möglichkeit zu bieten, mehr als eine Datei auszuwählen, z.B. via UMSCHALT oder STRG modifizierte Klicks. In diesem Fall ist der Rückgabewert ein Array, keine Zeichenkette. 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.

Die folgenden Nummern können verwendet werden. Um mehrere von ihnen in Kraft zu setzen, addieren Sie diese. Um zum Beispiel 1 und 2 zu verwenden, geben Sie 3 an.

1: Datei muss existieren
2: Pfad muss existieren
8: Nachfragen, ob eine neue Datei erstellt werden soll
16: Nachfragen, ob die Datei überschrieben werden soll
32: Verknüpfungen (LNK-Dateien) werden so ausgewählt, wie sie sind, anstatt in ihre Ziele aufgelöst zu werden. Diese Option verhindert auch die Navigation zu einem Ordner über eine Ordnerverknüpfung.

Beachten Sie, dass die 16-Option (nachfragen, ob die Datei überschrieben werden soll) nur vom Speichern-Dialogfenster unterstützt wird. Wenn Sie diese Option also ohne die 8-Option (nachfragen, ob eine neue Datei erstellt werden soll) angeben, wird auch die S-Option wirksam. Entsprechend hat die 8-Option keine Wirkung, wenn die S-Option vorhanden ist. Wenn Sie die Zahl 24 angeben, werden alle vom Dialogfenster unterstützten Nachfragen aktiviert.

RootVerz\DateiName

Typ: Zeichenkette

Wenn leer oder weggelassen, wird standardmäßig ein Startverzeichnis verwendet, das vom aktuellen Betriebssystem abhängt (in der Regel das Verzeichnis, das der Benutzer zuletzt mit FileSelect ausgewählt hat). Andernfalls geben Sie eine oder beide der folgenden Komponenten an:

RootVerz: Das Root- bzw. Startverzeichnis. Wenn kein absoluter Pfad angegeben ist, wird das Verzeichnis als Unterordner des A_WorkingDir-Verzeichnisses vermutet.

DateiName: Ein Dateiname, der standardmäßig im Eingabefeld des Dialogfensters angezeigt werden soll. Es wird nur der Dateiname angezeigt (also ohne Pfad). Für die korrekte Darstellung des Dialogfensters muss sichergestellt werden, dass keine illegalen Zeichen enthalten sind (wie z.B. /<|:").

Beispiele:

"C:\Meine Bilder\Standard-Bildname.gif"  ; Sowohl RootVerz als auch DateiName vorhanden.
"C:\Meine Bilder"  ; Nur RootVerz existiert.
"Meine Bilder"  ; Nur RootVerz existiert und ist relativ zum aktuellen Arbeitsverzeichnis.
"Meine Datei"  ; Nur DateiName existiert (aber wenn "Meine Datei" als Ordner existiert, wird es als RootVerz vermutet).
Titel

Typ: Zeichenkette

Wenn leer oder weggelassen, wird standardmäßig "Select File - " A_ScriptName (der Name des aktuellen Skripts) verwendet, es sei denn, die D-Option ist vorhanden, dann wird das Wort "File" mit "Folder" ersetzt. Andernfalls geben Sie den Titel des Dateiauswahlfensters an.

Filter

Typ: Zeichenkette

Wenn leer oder weggelassen, wird das Dialogfenster alle Dateitypen anzeigen und die Option "All Files (*.*)" in der aufklappbaren Dateityp-Auswahlliste anbieten.

Andernfalls geben Sie eine Zeichenkette an, um zu bestimmen, welche Dateitypen im Dialogfenster angezeigt werden, z.B. "Dokumente (*.txt)". Um mehr als eine Dateiendung in den Filter einzufügen, trennen Sie diese durch Semikolons, z.B. "Audio (*.wav; *.mp2; *.mp3)". In diesem Fall bietet die aufklappbare Dateityp-Auswahlliste die angegebene Zeichenkette und "All Files (*.*)" als Optionen an.

Dieser Parameter muss leer sein oder weggelassen werden, wenn die D-Option vorhanden ist.

Rückgabewert

Typ: Zeichenkette oder Array

Wenn die Mehrfachauswahl nicht aktiv ist, gibt diese Funktion den vollständigen Pfad und Namen der Datei oder des Ordners zurück, die/den der Benutzer ausgewählt hat, oder eine leere Zeichenkette, wenn der Benutzer das Dialogfenster abbricht.

Wenn die M-Option (Mehrfachauswahl) aktiv ist, gibt diese Funktion ein Array von Elementen zurück, wobei jedes Element der vollständige Pfad und Name einer Datei ist. Das Beispiel ganz unten zeigt, wie diese Dateien einzeln extrahiert werden können. Wenn der Benutzer das Dialogfenster abbricht, ist das Array leer (hat null Elemente).

Bemerkungen

Ein typisches Dateiauswahlfenster sieht wie folgt aus:

FileSelect

Ein GUI-Fenster kann via +OwnDialogs-Option ein modales Dateiauswahlfenster anzeigen. Ein modales Dialogfenster hindert den Benutzer daran, mit dem GUI-Fenster zu interagieren, bis er das Dialogfenster wieder schließt.

DirSelect, MsgBox, InputBox, ToolTip, GUI, CLSID-Liste, parsende Schleife, SplitPath

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 in Kombination mit comdlg32\ChooseFont, comdlg32\ChooseColor bzw. shell32\PickIconDlg angezeigt werden. Suchen Sie im Forum nach Beispielen.

Beispiele

Ermöglicht dem Benutzer die Auswahl einer existierenden TXT- oder DOC-Datei.

AusgewählteDatei := FileSelect(3, , "Datei öffnen", "Text-Dokumente (*.txt; *.doc)")
if AusgewählteDatei = ""
    MsgBox "Das Dialogfenster wurde abgebrochen."
else
    MsgBox "Die folgende Datei wurde ausgewählt:`n" AusgewählteDatei

Ermöglicht dem Benutzer die Auswahl mehrerer existierender Dateien.

AusgewählteDateien := FileSelect("M3")  ; M3 = Mehrfachauswahl existierender Dateien.
if AusgewählteDateien.Length = 0
{
    MsgBox "Das Dialogfenster wurde abgebrochen."
    return
}
for DateiName in AusgewählteDateien
{
    Ergebnis := MsgBox("Datei Nr. " A_Index " von " AusgewählteDateien.Length ":`n" DateiName "`n`nWeiter?",, "YN")
    if Ergebnis = "No"
        break
}

Ermöglicht dem Benutzer die Auswahl eines Ordners.

AusgewählterOrdner := FileSelect("D", , "Ordner auswählen")
if AusgewählterOrdner = ""
    MsgBox "Das Dialogfenster wurde abgebrochen."
else
    MsgBox "Der folgende Ordner wurde ausgewählt:`n" AusgewählterOrdner