Crée une boîte de dialogue Open 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_GetOpenFileName ( [$sTitle = "" [, $sFilter = "All files (*.*)" [, $sInitalDir = "." [, $sDefaultFile = "" [, $sDefaultExt = "" [, $iFilterIndex = 1 [, $iFlags = 0 [, $iFlagsEx = 0 [, $hWndOwner = 0]]]]]]]]] )
$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] Nom de fichier pour 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 à sélectionner dans le contrôle des types de fichiers |
$iFlags | [optionnel] Voir Flags dans la page $tagOPENFILENAME |
$iFlagsEx | [optionnel] Voir FlagEx dans la page $tagOPENFILENAME |
$hWndOwner | [optionnel] Handle de la fenêtre qui est propriétaire de la boîte de dialogue. Ce membre ne 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 |
Succès: | Retourne un tableau dans le format suivant: [0] - Contient le nombre de chaînes [1] - Contient le chemin sélectionné [2] - Contient le fichier sélectionné [n] - Contient le fichier sélectionné |
Échec: | Définit @error <> 0, appelez _WinAPI_CommDlgExtendedError() pour obtenir des informations sur l'erreur. |
$tagOPENFILENAME, _WinAPI_CommDlgExtendedError, _WinAPI_GetSaveFileName
Consultez GetOpenFileName dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <StructureConstants.au3> #include <WinAPIDlg.au3> #include <WindowsConstants.au3> Global $g_idMemo _Example_Defaults() _Example_ExplorerStyleMultiSelect() _Example_OldStyle() _Example_ExplorerStyleSinglSelect() _Example_ExplorerStyle_NoPlaceBar() Func _Example_Defaults() Local $hGui, $id_Dialog, $aFile, $sError ; Crée une GUI $hGui = GUICreate("GetOpenFileName use defaults", 400, 296) $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $id_Dialog = GUICtrlCreateButton("Open Dialog", 155, 270, 90, 20) GUISetState(@SW_SHOW) Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $id_Dialog Then $aFile = _WinAPI_GetOpenFileName() ; 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_ExplorerStyleMultiSelect() Local $hGui, $id_Dialog, $aFile, $sError ; Crée une GUI $hGui = GUICreate("GetOpenFileName utilise le Style Explorer (Multi Select)", 400, 296) $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $id_Dialog = GUICtrlCreateButton("Open Dialog", 155, 270, 90, 20) GUISetState(@SW_SHOW) Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $id_Dialog Then $aFile = _WinAPI_GetOpenFileName("My Open File Dialog", _ "Text File (*.txt; *.au3)", ".", @ScriptName, "", 1, _ BitOR($OFN_ALLOWMULTISELECT, $OFN_EXPLORER), 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_ExplorerStyleMultiSelect Func _Example_OldStyle() Local $hGui, $id_Dialog, $aFile, $sError ; Crée une GUI $hGui = GUICreate("GetOpenFileName use Old Style (Multi Select)", 400, 296) $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $id_Dialog = GUICtrlCreateButton("Open Dialog", 155, 270, 90, 20) GUISetState(@SW_SHOW) Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $id_Dialog Then $aFile = _WinAPI_GetOpenFileName("My Open File Dialog", _ "Text File (*.txt)|AutoIt File (*.au3)", ".", @ScriptName, _ "", 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_ExplorerStyleSingleSelect() Local $hGui, $id_Dialog, $aFile, $sError ; Crée une GUI $hGui = GUICreate("GetOpenFileName use Explorer Style (Single Select)", 400, 296) $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $id_Dialog = GUICtrlCreateButton("Open Dialog", 155, 270, 90, 20) GUISetState(@SW_SHOW) Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $id_Dialog Then $aFile = _WinAPI_GetOpenFileName("My Open File Dialog", _ "Text File (*.txt)|AutoIt File (*.au3)", ".", @ScriptName, _ "", 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_ExplorerStyleSinglSelect Func _Example_ExplorerStyle_NoPlaceBar() Local $hGui, $id_Dialog, $aFile, $sError ; Crée une GUI $hGui = GUICreate("GetOpenFileName use Explorer Style (Single Select)", 400, 296) $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, $WS_HSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $id_Dialog = GUICtrlCreateButton("Open Dialog", 155, 270, 90, 20) GUISetState(@SW_SHOW) Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $id_Dialog Then $aFile = _WinAPI_GetOpenFileName("My Open File Dialog", _ "Text File (*.txt)|AutoIt File (*.au3)", ".", @ScriptName, _ "", 2, BitOR($OFN_ALLOWMULTISELECT, $OFN_EXPLORER), $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