Funktionsreferenz

FileOpenDialog

Zeigt den "Datei öffnen"-Dialog an.

FileOpenDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )

 

Parameter

title Titel des Dialogfensters.
init dir Startverzeichnis.
filter Dateifilter wie z.B. "Alle (*.*)" oder "Textdateien (*.txt)" oder Multifiltergruppen wie z.B. "Alle (*.*)|Textdateien (*.txt)" (Siehe Bemerkungen).
options [optional] Dialog-Optionen: Um mehr als eine Option zu verwenden, addiere die entsprechenden Werte.
  1 = Datei muss existieren (wenn der Benutzer einen Dateinamen eintippt)
  2 = Pfad muss existieren (wenn der Benutzer einen Pfad eintippt, endend mit einem Backslash)
  4 = Erlaube Mehrfachauswahl
  8 = Frage nach Erstellung einer neuen Datei, wenn diese nicht existiert.
default name [optional] Dateinamensvorschlag, der als Standard verwendet wird. Standard ist eine leerer String ("").
hwnd [optional] Das Fenster Handle welches als Parent für diesen Dialog verwendet wird.

 

Rückgabewert

Erfolg: Gibt den kompletten Pfad der ausgewählten Datei zurück. Rückgabe mehrerer Dateien wie folgt: "Verzeichnis|Datei1|Datei2|..."
Fehler: Setzt @error
@error: 1 - Keine Datei ausgewählt.
2 - Falscher Dateifilter

 

Bemerkungen

Die Filter sind, wie im Beispiel zu sehen, mit Semikolon zu trennen.
Multifiltergruppen werden durch einen Strich "|" getrennt.

Wenn der Dateinamensvorschlag angegeben ist, müssen auch die Optionen angegeben sein.
Wenn keine Option benötigt wird, muss als Wert 0 verwendet werden.

Besondere Windows-Ordner (wie z.B "Eigene Dateien") können manchmal auch als Startverzeichnis gesetzt werden; siehe Anhang CLSIDs besonderer Ordner.

@WorkingDir wird bei erfolgreichem Rückgabewert geändert.

 

Verwandte Funktionen

FileSaveDialog, FileSelectFolder, StringSplit

 

Beispiel


$message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."

$var = FileOpenDialog($message, @WindowsDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )

If @error Then
    MsgBox(4096,"","Keine Datei(en) ausgewählt")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096,"","Es wurde(n) " & $var & " ausgewählt")
EndIf


; Mehrfache Filtergruppe
$message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."

$var = FileOpenDialog($message, @WindowsDir & "", "Bilder (*.jpg;*.bmp)|Videos (*.avi;*.mpg)", 1 + 4 )

If @error Then
    MsgBox(4096,"","Keine Datei(en) ausgewählt")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096,"","Es wurde(n) " & $var & " ausgewählt.")
EndIf