Affiche une bo�te de dialogue qui permet � l'utilisateur de s�lectionner un dossier Shell
#include <WinAPIDlg.au3>
_WinAPI_BrowseForFolderDlg ( [$sRoot = '' [, $sText = '' [, $iFlags = 0 [, $pBrowseProc = 0 [, $lParam = 0 [, $hParent = 0]]]]]] )
$sRoot | [optionnel] Le dossier racine � partir duquel commencer la navigation. Seul le dossier sp�cifi� et ses sous-dossiers dans la hi�rarchie de l'espace de noms apparaissent dans la bo�te de dialogue. Si ce param�tre est 0, la racine de l'espace de noms (le dossier Desktop) est utilis�. |
$sText | [optionnel] La cha�ne qui est affich�e au-dessus du contr�le Treeview dans la bo�te de dialogue. |
$iFlags | [optionnel] Flags sp�cifiant les options de la bo�te de dialogue. Ce param�tre peut �tre une combinaison des valeurs suivantes: $BIF_BROWSEFORCOMPUTER $BIF_BROWSEFORPRINTER $BIF_BROWSEINCLUDEFILES $BIF_BROWSEINCLUDEURLS $BIF_DONTGOBELOWDOMAIN $BIF_EDITBOX $BIF_NEWDIALOGSTYLE $BIF_NONEWFOLDERBUTTON $BIF_NOTRANSLATETARGETS $BIF_RETURNFSANCESTORS $BIF_RETURNONLYFSDIRS $BIF_SHAREABLE $BIF_STATUSTEXT $BIF_USENEWUI $BIF_UAHINT $BIF_VALIDATE Windows 7 ou une version ult�rieure: $BIF_BROWSEFILEJUNCTIONS |
$pBrowseProc | [optionnel] Pointeur sur une fonction de rappel que la bo�te de dialogue appelle si un �v�nement se produit. Cette fonction recevra l'un des messages d'�v�nement suivants: $BFFM_INITIALIZED $BFFM_IUNKNOWN $BFFM_SELCHANGED $BFFM_VALIDATEFAILED (Voir MSDN pour plus d'informations) |
$lParam | [optionnel] La valeur que la bo�te de dialogue passe � la fonction de rappel. |
$hParent | [optionnel] Handle de la fen�tre parent de la bo�te de dialogue. |
Succ�s: | Retourne le chemin d'acc�s complet du dossier choisi, ou une cha�ne vide si l'utilisateur annule/ferme le dialogue. |
�chec: | Retourne la cha�ne vide. |
Consultez SHBrowseForFolder dans la librairie MSDN.
#include <APIDlgConstants.au3> #include <MsgBoxConstants.au3> #include <SendMessage.au3> #include <WinAPIDlg.au3> #include <WinAPIMem.au3> #include <WinAPIMisc.au3> #include <WinAPIShellEx.au3> #include <WinAPIShPath.au3> #include <WinAPISysWin.au3> Local Const $sInitDir = @ProgramFilesDir Local $hBrowseProc = DllCallbackRegister('_BrowseProc', 'int', 'hwnd; uint; lparam; ptr ') Local $pBrowseProc = DllCallbackGetPtr($hBrowseProc) Local $pText = _WinAPI_CreateString($sInitDir) Local $sPath = _WinAPI_BrowseForFolderDlg(_WinAPI_PathStripToRoot($sInitDir), 'Select a folder from the list below.', BitOR($BIF_RETURNONLYFSDIRS, $BIF_EDITBOX, $BIF_VALIDATE), $pBrowseProc, $pText) _WinAPI_FreeMemory($pText) If $sPath Then ConsoleWrite('--------------------------------------------------'& @CRLF) ConsoleWrite($sPath & @CRLF) EndIf DllCallbackFree($hBrowseProc) Func _BrowseProc($hWnd, $iMsg, $wParam, $lParam) Local $sPath Switch $iMsg Case $BFFM_INITIALIZED _WinAPI_SetWindowText($hWnd, 'MyTitle') _SendMessage($hWnd, $BFFM_SETSELECTIONW, 1, $lParam) Case $BFFM_SELCHANGED $sPath = _WinAPI_ShellGetPathFromIDList($wParam) If Not @error Then ConsoleWrite($sPath & @CRLF) EndIf Case $BFFM_VALIDATEFAILED MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', _WinAPI_GetString($wParam) & 'is invalid.', 0, $hWnd) Return 1 EndSwitch Return 0 EndFunc ;==>_BrowseProc