UDF > WinAPIEx > Dialog >


_WinAPI_GetSaveFileName

Crée une boîte de dialogue Save qui permet à l'utilisateur de spécifier le lecteur, le répertoire et le nom d'un fichier à enregistrer

#include <WinAPIDlg.au3>
_WinAPI_GetSaveFileName ( [$sTitle = "" [, $sFilter = "All files (*.*)" [, $sInitalDir = "." [, $sDefaultFile = "" [, $sDefaultExt = "" [, $iFilterIndex = 1 [, $iFlags = 0 [, $iFlagsEx = 0 [, $hWndOwner = 0]]]]]]]]] )

Paramètres

$sTitle [optionnel] Chaîne à placer dans la barre de titre de la boîte de dialogue
$sFilter [optionnel] Paires de chaînes de filtre, par exemple "Text Files (*.txt)|All Files (*.*)"
La première chaîne de chaque paire est une chaîne à afficher qui décrit le filtre (par exemple "Text Files")
La deuxième chaîne spécifie le modèle de filtre (par exemple, "*.TXT")
Pour spécifier plusieurs modèles de filtres pour une seule chaîne à afficher, utilisez un point-virgule pour séparer les modèles (par exemple, "*.TXT;*.DOC;*.BAK")
Une chaîne de modèle peut être une combinaison de caractères de noms de fichiers valides et le caractère générique astérisque (*)
Ne pas inclure d'espaces dans la chaîne modèle.
$sInitalDir [optionnel] Chaîne qui peut spécifier le répertoire initial
$sDefaultFile [optionnel] Un nom de fichier à utilisé pour initialiser le nom du fichier du contrôle d'édition
$sDefaultExt [optionnel] Chaîne qui contient l'extension par défaut
$iFilterIndex [optionnel] Spécifie l'index du filtre actuellement sélectionné dans le contrôle des types de fichiers
$iFlags [optionnel] Voir Flags de la page $tagOPENFILENAME
$iFlagsEx [optionnel] Voir FlagEx de la page $tagOPENFILENAME
$hWndOwner [optionnel] Handle de la fenêtre qui est propriétaire de la boîte de dialogue. Ce membre peut être n'importe quel handle de fenêtre valide, ou il peut être 0 si la boîte de dialogue n'a pas de propriétaire

Valeur de retour

Succès: Retourne un tableau dans le format suivant:
    [0] - Contient le nombre de chaînes (2)
    [1] - Contient le chemin sélectionné
    [2] - Contient le fichier sélectionné
Échec: Définit @error <> 0, appelez _WinAPI_CommDlgExtendedError() pour obtenir des informations sur l'erreur.

En relation

$tagOPENFILENAME, _WinAPI_CommDlgExtendedError, _WinAPI_GetOpenFileName

Voir aussi

Consultez GetSaveFileName dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
#include <WinAPIDlg.au3>
#include <WindowsConstants.au3>

Global $g_idMemo

_Example_Defaults()
_Example_ExplorerStyle()
_Example_OldStyle()
_Example_ExplorerStyle_NoPlaceBar()

Func _Example_Defaults()
    Local $hGui, $id_Dialog, $aFile, $sError

    ; Crée une GUI
    $hGui = GUICreate("GetSaveFileName utilise les valeurs par défaut", 400, 296)
    $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    $id_Dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
    GUISetState(@SW_SHOW)

    Local $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE 
        If $iMsg = $id_Dialog Then
            $aFile = _WinAPI_GetSaveFileName() ; utilisation par défaut
            If $aFile[0] = 0 Then
                $sError = _WinAPI_CommDlgExtendedError()
                MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
            Else
                For $x = 1 To $aFile[0]
                   MemoWrite($aFile[$x])
                Next
            EndIf
        EndIf
        $iMsg = GUIGetMsg()
    WEnd
    GUIDelete($hGui)
EndFunc   ;==>_Example_Defaults

Func _Example_ExplorerStyle()
    Local $hGui, $id_Dialog, $aFile, $sError

    ; Crée une GUI
    $hGui = GUICreate("GetSaveFileName utilise le Style Explorer", 400, 296)
    $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    $id_Dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
    GUISetState(@SW_SHOW)

    Local $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $id_Dialog Then
            $aFile = _WinAPI_GetSaveFileName("My Save File Dialog", _
                    "Text File (*.txt)|AutoIt File (*.au3)", ".", _
                    "", "au3", 2, 0, 0, $hGui)
            If $aFile[0] = 0 Then
                $sError = _WinAPI_CommDlgExtendedError()
                MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
            Else
                For $x = 1 To $aFile[0]
                    MemoWrite($aFile[$x])
                Next
            EndIf
        EndIf
        $iMsg = GUIGetMsg()
    WEnd
    GUIDelete($hGui)
EndFunc   ;==>_Example_ExplorerStyle

Func _Example_OldStyle()
    Local $hGui, $id_Dialog, $aFile, $sError

    ; Crée une GUI
    $hGui = GUICreate("GetSaveFileName utilise le style Old", 400, 296)
    $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    $id_Dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
    GUISetState(@SW_SHOW)

    Local $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $id_Dialog Then
            $aFile = _WinAPI_GetSaveFileName("My Save File Dialog", _
                    "Text File (*.txt)|AutoIt File (*.au3)", ".", "", _
                    "", 2, $OFN_ALLOWMULTISELECT, 0, $hGui)
            If $aFile[0] = 0 Then
                $sError = _WinAPI_CommDlgExtendedError()
                MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
            Else
                For $x = 1 To $aFile[0]
                    MemoWrite($aFile[$x])
                Next
            EndIf
        EndIf
        $iMsg = GUIGetMsg()
    WEnd
    GUIDelete($hGui)
EndFunc   ;==>_Example_OldStyle

Func _Example_ExplorerStyle_NoPlaceBar()
    Local $hGui, $id_Dialog, $aFile, $sError

    ; Crée une GUI
    $hGui = GUICreate("GetSaveFileName utilise le style Explorer No Place Bar", 400, 296)
    $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    $id_Dialog = GUICtrlCreateButton("Save Dialog", 155, 270, 90, 20)
    GUISetState(@SW_SHOW)

    Local $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $id_Dialog Then
            $aFile = _WinAPI_GetSaveFileName("My Save File Dialog", _
                    "Text File (*.txt)|AutoIt File (*.au3)", ".", "", _
                    "", 2, 0, $OFN_EX_NOPLACESBAR, $hGui)
            If $aFile[0] = 0 Then
                $sError = _WinAPI_CommDlgExtendedError()
                MemoWrite("CommDlgExtendedError (" & @error & "): " & $sError)
            Else
                For $x = 1 To $aFile[0]
                    MemoWrite($aFile[$x])
                Next
            EndIf
        EndIf
        $iMsg = GUIGetMsg()
    WEnd
    GUIDelete($hGui)
EndFunc   ;==>_Example_ExplorerStyle_NoPlaceBar

; Écrit une ligne dans le contrôle mémo
Func MemoWrite($sMessage)
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite