Rechercher un dossier (boîte de dialogue)

Signaler
Messages postés
9
Date d'inscription
mardi 13 août 2002
Statut
Membre
Dernière intervention
29 janvier 2003
-
Messages postés
9
Date d'inscription
mardi 13 août 2002
Statut
Membre
Dernière intervention
29 janvier 2003
-
Bonjour,

je suis débutant et ça fait plusieurs jours que je cherche à afficher la boite de dialogue "Rechercher un dossier" (la petite boîte, comme par exemple sous WinAce lorsqu'on à un SFX et que l'on veut l'extraire dans un autre dossier que celui proposé) et je n'est pas trouvé. Car j'aimerais que lorsque la personne xlique sur le bouton, la boîte s'affiche pour lui permettre de sélectionner un dossier pour extraire les informations vers ce dossier.

Si c"est possible et que quelqu'un à la solution SVP aidez moi.

Merci d'avance pour votre aide.

2 réponses

Messages postés
119
Date d'inscription
lundi 15 avril 2002
Statut
Membre
Dernière intervention
28 novembre 2008

le seul moyen que je connaisse c'est par l'API
voici un exemple :
place ce code dans un nouveau projet
'-------------------
Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Sub Form_Load()
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo

With udtBI
.hWndOwner = Me.hWnd
.lpszTitle = lstrcat("C:", "")
.ulFlags = BIF_RETURNONLYFSDIRS
End With

'affiche la boite IDlist
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'retourne le path
SHGetPathFromIDList lpIDList, sPath
'libere le bloque memo
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If

MsgBox sPath
End Sub

'-------------

@+ stefsoft
0
Messages postés
9
Date d'inscription
mardi 13 août 2002
Statut
Membre
Dernière intervention
29 janvier 2003

Super c'est exactement ce que me fallait, je te remerci beaucoup.
0