UDF > WinAPIEx > Dialog >


_WinAPI_OpenFileDlg

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

#include <WinAPIDlg.au3>
_WinAPI_OpenFileDlg ( [$sTitle = '' [, $sInitDir = '' [, $sFilters = '' [, $iDefaultFilter = 0 [, $sDefaultFilePath = '' [, $sDefaultExt = '' [, $iFlags = 0 [, $iFlagsEx = 0 [, $pOFNProc = 0 [, $pData = 0 [, $hParent = 0]]]]]]]]]]] )

Paramètres

$sTitle [optionnel] La chaîne à placer dans la barre de titre de la boîte de dialogue.
Si ce paramètre est la chaîne vide (par défaut), le système utilise le titre par défaut (c'est-à-dire "Open").
$sInitDir [optionnel] Le répertoire initial.
$sFilters [optionnel] Les paires de chaînes de filtre (par exemple, "Text Files (*.txt)"). Pour spécifier plusieurs modèles de filtres dans une seule chaîne d'affichage, utilisez un point-virgule pour séparer les modèles (par exemple, "*.txt;*.doc;*.bak").
N'utilisez pas d'espace dans le modèle. Pour spécifier plusieurs groupes de filtres, utilisez le caractère "|" comme séparateur (par exemple, "Text Files (*.txt)|All Files (*.*)").
Si ce paramètre est omis ou si il est la chaîne vide (par défaut), la boîte de dialogue n'affiche pas les filtres.
$iDefaultFilter [optionnel] L'index, compté à partir de 1, du filtre actuellement sélectionné pour initialiser le contrôle combo box.
$sDefaultFilePath [optionnel] Le nom du fichier pour initialiser le contrôle d'édition.
$sDefaultExt [optionnel] L'extension par défaut qui sera ajoutée au nom de fichier si l'utilisateur ne parvient pas à taper une extension.
Cette chaîne peut être de n'importe quelle longueur, mais seuls les trois premiers caractères seront ajoutés. La chaîne ne doit pas contenir le point (.). Si ce paramètre est la chaîne vide (par défaut), aucune extension sera ajoutée.
$iFlags [optionnel] Un jeu de bits que vous pouvez utiliser pour initialiser la boîte de dialogue.
Ce paramètre peut être 0 ou une combinaison des valeurs suivantes:
    $OFN_ALLOWMULTISELECT
    $OFN_CREATEPROMPT
    $OFN_DONTADDTORECENT
    $OFN_ENABLEHOOK
    $OFN_ENABLEINCLUDENOTIFY
    $OFN_ENABLESIZING
    $OFN_EXPLORER
    $OFN_FILEMUSTEXIST
    $OFN_FORCESHOWHIDDEN
    $OFN_HIDEREADONLY
    $OFN_LONGNAMES
    $OFN_NODEREFERENCELINKS
    $OFN_NOLONGNAMES
    $OFN_NONETWORKBUTTON
    $OFN_NOREADONLYRETURN
    $OFN_NOTESTFILECREATE
    $OFN_NOVALIDATE
    $OFN_PATHMUSTEXIST
    $OFN_READONLY
    $OFN_SHAREAWARE
    $OFN_SHOWHELP
$iFlagsEx [optionnel] Un jeu de bits que vous pouvez utiliser pour initialiser la boîte de dialogue. Il peut être 0 ou la valeur suivante:
    $OFN_EX_NOPLACESBAR
$pOFNProc [optionnel] Un pointeur vers une procédure hook. Ce paramètre est ignoré si le flag $OFN_ENABLEHOOK est activé.
$pData [optionnel] Pointeur sur les données définies par l'application que le système passe à la procédure hook.
$hParent [optionnel]Le handle de la fenêtre parent de la boîte de dialogue.

Valeur de retour

Succès: Retourne le chemin complet du fichier d'entrée si le flag $OFN_ALLOWMULTISELECT n'est pas activé, sinon retourne toujours un tableau de chemins.
    L'élément [0] du tableau indique le nombre de fichiers.
Échec: Définit @error <> 0, @extended contieny le code d'erreur de boîte de dialogue ($CDERR_* ou $FNERR_*).

Remarques

Appelez _WinAPI_GetExtended() pour obtenir la structure interne $tagOPENFILENAME contenant les informations de sélection de l'utilisateur après la fermeture de la boîte de dialogue.

Si vous utilisez un hook, vous ne pouvez pas conserver l'interface utilisateur de la boîte de dialogue comme dans Windows Vista ou une version ultérieure.

En relation

_WinAPI_GetExtended

Voir aussi

Consultez GetOpenFileName dans la librairie MSDN.

Exemple

#include <WinAPIDlg.au3>

; Sélection de fichier unique (retourne le chemin complet)
Local $sFile = _WinAPI_OpenFileDlg('', @WorkingDir, 'AutoIt v3 Scripts (*.au3)|All Files (*.*)', 1, '', '', BitOR($OFN_PATHMUSTEXIST, $OFN_FILEMUSTEXIST, $OFN_HIDEREADONLY))
If Not @error Then
    ConsoleWrite($sFile & @CRLF)
EndIf

; Sélection multiple de fichiers (retourne un tableau)
$sFile = _WinAPI_OpenFileDlg('', @WorkingDir, 'AutoIt v3 Scripts (*.au3)|All Files (*.*)', 1, '', '', BitOR($OFN_PATHMUSTEXIST, $OFN_FILEMUSTEXIST, $OFN_HIDEREADONLY, $OFN_ALLOWMULTISELECT, $OFN_EXPLORER))
If Not @error Then
    ConsoleWrite('--------------------------------------------------'& @CRLF)
    For $i = 1 To $sFile[0]
        ConsoleWrite($sFile[$i] & @CRLF)
    Next
EndIf