Zeigt den "Datei öffnen"-Dialog an.
FileOpenDialog ( "title", "init dir", "filter" [, options = 0 [, "default name" [, hwnd]]] )
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, ist BitOR zu verwenden. $FD_FILEMUSTEXIST (1) = Datei muss existieren (wenn der Benutzer einen Dateinamen eintippt) $FD_PATHMUSTEXIST (2) = Pfad muss existieren (wenn der Benutzer einen Pfad eintippt, endend mit einem Backslash) $FD_MULTISELECT (4) = Erlaubt Mehrfachauswahl $FD_PROMPTCREATENEW (8) = Fragt nach Erstellung einer neuen Datei, wenn diese nicht existiert. Die Konstanten sind in FileConstants.au3 definiert. |
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. |
Erfolg: | Der komplette Pfad der ausgewählten Datei. Rückgabe mehrerer Dateien wie folgt: "Verzeichnis|Datei1|Datei2|..." |
Fehler: | Setzt das @error Flag auf ungleich null. |
@error: | 1 - Keine Datei ausgewählt. 2 - Falscher Dateifilter |
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.
FileSaveDialog, FileSelectFolder, StringSplit
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Erstellt eine Konstante im lokalen Bereich der Nachricht die in FileOpenDialog dargestellt werden soll.
Local Const $sMessage = "Strg oder Shift drücken um mehrere Dateien auszuwählen."
; Zeigt einen Öffnen-Dialog an um eine Liste von Dateien auszuwählen.
Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "Bilder (*.jpg;*.bmp)|Videos (*.avi;*.mpg)", BitOR($FD_FILEMUSTEXIST, $FD_MULTISELECT))
If @error Then
; Zeigt die Fehlermeldung.
MsgBox($MB_SYSTEMMODAL, "", "Keine Dateien ausgewählt.")
; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
FileChangeDir(@ScriptDir)
Else
; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
FileChangeDir(@ScriptDir)
; Ersetzt im von FileOpenDialog zurückgegebenen String "|" mit @CRLF.
$sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)
; Zeigt die Liste der ausgewählten Dateien.
MsgBox($MB_SYSTEMMODAL, "", "Es wurden folgende Dateien ausgewählt:" & @CRLF & $sFileOpenDialog)
EndIf
EndFunc ;==>Example
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Erstellt eine Konstante im lokalen Bereich der Nachricht die in FileOpenDialog dargestellt werden soll.
Local Const $sMessage = "Bitte eine einzelne Datei eines Types auswählen."
; Zeigt einen Öffnen-Dialog an um eine Datei auszuwählen.
Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "Alle (*.*)", $FD_FILEMUSTEXIST)
If @error Then
; Zeigt die Fehlermeldung.
MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
FileChangeDir(@ScriptDir)
Else
; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
FileChangeDir(@ScriptDir)
; Ersetzt im von FileOpenDialog zurückgegebenen String "|" mit @CRLF.
$sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)
; Zeigt die Liste der ausgewählten Dateien.
MsgBox($MB_SYSTEMMODAL, "", "Es wurden folgende Datei ausgewählt:" & @CRLF & $sFileOpenDialog)
EndIf
EndFunc ;==>Example