Erzeugt ein "Öffnen-Dialog-Fenster", welches dem Benutzer das Laufwerk, Verzeichnis und den Namen einer oder mehrerer zu speichernden Dateien bestimmen lässt
#include <WinAPIDlg.au3>
_WinAPI_GetSaveFileName ( [$sTitle = "" [, $sFilter = "All files (*.*)" [, $sInitalDir = "." [, $sDefaultFile = "" [, $sDefaultExt = "" [, $iFilterIndex = 1 [, $iFlags = 0 [, $iFlagsEx = 0 [, $hWndOwner = 0]]]]]]]]] )
$sTitle | [optional] String der in der Titelleiste des Dialogfensters platziert werden soll |
$sFilter | [optional] Paare von Filter-Strings (z.B. "Textdateien (*.txt)|Alle Dateien (*.*)") Der erste String in jedem Filterpaar ist ein Anzeigetext der den Filter beschreibt (z.B. "Textdateien") Der zweite String bestimmt das Filtermuster (z.B. "*.txt") Um mehrere Filtermuster für nur einen Anzeigetext zu bestimmen, trennt man die Filtermuster mit einem Semikolon (z.B. "*.txt;*.doc;*.bak") Ein Filtermuster kann eine Kombination gültiger Dateiendungen und dem Asterisk-Druckzeichen (*) für Wildcards darstellen. Das Filtermuster darf keine Leerzeichen enthalten. |
$sInitalDir | [optional] String der das Ursprungsverzeichnis festlegen kann |
$sDefaultFile | [optional] Ein Dateiname der genutzt werden kann um das Dateinamen-Input-Control zu initialisieren |
$sDefaultExt | [optional] String der die standardmäßige Dateierweiterung enthält |
$iFilterIndex | [optional] Bestimmt den Index des aktuell gewählten Filters in der "Dateityp"-ComboBox |
$iFlags | [optional] Siehe Flags in der $tagOPENFILENAME Information |
$iFlagsEx | [optional] Siehe FlagEx in der $tagOPENFILENAME Information |
$hWndOwner | [optional] Handle zu dem Fenster welches das Dialogfenster besitzt. Dieses Mitglied kann irgendein gültiges Fensterhandle sein, oder 0 wenn das Dialogfenster keinen Besitzer hat. |
Erfolg: | Array mit dem folgenden Format: [0] - Enthält die Anzahl der Strings [1] - Enthält den gewählten Pfad [2] - Enthält die gewählte Datei [n] - Enthält die gewählte Datei |
Fehler: | Setzt das @error Flag auf ungleich null. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten. |
Das Dialogfeld "Save as type" ermöglicht dem Benutzer die Auswahl mehrerer in $sFilter festgelegter Filtermuster - das erste dieser Muster ist als Standard festgelegt.
Der Parameter $sDefaultExt ist von entscheidender Bedeutung.
- Wenn dieser Parameter leer gelassen wird, wird KEINE Dateierweiterung an den zurückgegebenen Dateinamen angehängt, unabhängig von der Einstellung im "Save as type"-Kombinationsdialog.
- Wird dieser Parameter jedoch auf einen beliebigen String-Wert gesetzt, wird die im "Save as type"-Dialog angezeigte Erweiterung automatisch angehängt.
$tagOPENFILENAME, _WinAPI_CommDlgExtendedError, _WinAPI_GetOpenFileName
Suche nach GetSaveFileName in der MSDN Bibliothek.
#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
#include <WinAPIDlg.au3>
#include <WindowsConstants.au3>
;#include <StructureConstants.au3>
Global $g_idMemo
_Example_Defaults()
_Example_ExplorerStyle()
_Example_OldStyle()
_Example_ExplorerStyle_NoPlaceBar()
Func _Example_Defaults()
Local $hGui, $id_Dialog, $aFile, $sError
; Erstellt eine GUI
$hGui = GUICreate("GetSaveFileName mit Standardeinstellungen", 450, 296)
$g_idMemo = GUICtrlCreateEdit("", 2, 32, 446, 226, $WS_HSCROLL)
GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
$id_Dialog = GUICtrlCreateButton("Speichern-Dialog", 180, 270, 90, 20)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $id_Dialog
$aFile = _WinAPI_GetSaveFileName() ; Standard
If @error Then
Local $iError = @error
Local $iExtended = @extended
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & $iError & "/" & $iExtended & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_Defaults
Func _Example_ExplorerStyle()
Local $hGui, $id_Dialog, $aFile, $sError
; Erstellt eine GUI
$hGui = GUICreate("GetSaveFileName im Explorer-Stil", 450, 296)
$g_idMemo = GUICtrlCreateEdit("", 2, 32, 446, 226, $WS_HSCROLL)
GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
$id_Dialog = GUICtrlCreateButton("Speichern-Dialog", 180, 270, 90, 20)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $id_Dialog
$aFile = _WinAPI_GetSaveFileName("Mein Datei-Speichern-Dialog", _
"Textdatei (*.txt)|AutoIt-Datei (*.au3)", ".", _
"", "au3", 2, 0, 0, $hGui)
If @error Then
Local $iError = @error
Local $iExtended = @extended
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & $iError & "/" & $iExtended & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_ExplorerStyle
Func _Example_OldStyle()
Local $hGui, $id_Dialog, $aFile, $sError
; Erstellt eine GUI
$hGui = GUICreate("GetSaveFileName im alten Stil", 450, 296)
$g_idMemo = GUICtrlCreateEdit("", 2, 32, 446, 226, $WS_HSCROLL)
GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
$id_Dialog = GUICtrlCreateButton("Speichern-Dialog", 180, 270, 90, 20)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $id_Dialog
$aFile = _WinAPI_GetSaveFileName("Mein Datei-Speichern-Dialog", _
"Textdatei (*.txt)|AutoIt-Datei (*.au3)", ".", "", _
"", 2, $OFN_ALLOWMULTISELECT, 0, $hGui)
If @error Then
Local $iError = @error
Local $iExtended = @extended
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & $iError & "/" & $iExtended & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_OldStyle
Func _Example_ExplorerStyle_NoPlaceBar()
Local $hGui, $id_Dialog, $aFile, $sError
; Erstellt eine GUI
$hGui = GUICreate("GetSaveFileName im Explorer-Stil (ohne Favoriten)", 450, 296)
$g_idMemo = GUICtrlCreateEdit("", 2, 32, 446, 226, $WS_HSCROLL)
GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
$id_Dialog = GUICtrlCreateButton("Speichern-Dialog", 180, 270, 90, 20)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $id_Dialog
$aFile = _WinAPI_GetSaveFileName("Mein Datei-Speichern-Dialog", _
"Textdatei (*.txt)|AutoIt-Datei (*.au3)", ".", "", _
"", 2, 0, $OFN_EX_NOPLACESBAR, $hGui)
If @error Then
Local $iError = @error
Local $iExtended = @extended
$sError = _WinAPI_CommDlgExtendedError()
MemoWrite("CommDlgExtendedError (" & $iError & "/" & $iExtended & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MemoWrite($aFile[$x])
Next
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete($hGui)
EndFunc ;==>_Example_ExplorerStyle_NoPlaceBar
; Gibt eine Zeile im Memo-Fenster aus
Func MemoWrite($sMessage)
GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite