fonction GetFolderName() et paramètre pidlRoot

fonction GetFolderName() et paramètre pidlRoot - VB/VBA/VBS - Programmation

Marsh Posté le 25-05-2005 à 18:43:56    

Bonjour,
 
J'utilise la fonction GetfolderName() pour choisir un répertoire mais je n'arrive pas à lui imposer un répertoire précis le seul paramètre que je peux passer est pidlRoot=0& pour le bureau.
 
Comment faire pour le forcer sur C:\windows par exemple
 
Merci  :)  

Reply

Marsh Posté le 25-05-2005 à 18:43:56   

Reply

Marsh Posté le 11-06-2005 à 07:38:49    

Bonjour,
 
Mes recherches sur le net ne donnent rien, je penses qu'il n'est donc pas possible de jouer sur ce paramètre
merci d'avance pour votre aide.

Reply

Marsh Posté le 11-06-2005 à 10:34:15    

Je pense que, si tu avais été plus précis, on aurait déjà essayé de t'aider...
 
Personnellement, quand j'ai vu ta question, je n'ai pas eu envie de commencer à deviner ou chercher dans quel langage (vb/vba/vbs) la fonction GetfolderName() est utilisée.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 11-06-2005 à 16:52:41    

Désolé pour ce manque de precision c'est en VB6 j'utilise cette fonction pour choisir un répertoire et ensuite l'utiliser dans le reste du code.
Voilà le code de la fonction :
 
Attribute VB_Name = "Module_GetFolder"
Option Explicit
 
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
 
Const MAX_PATH = 260
 
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
 
Public Enum BIF_Enum
    BIF_RETURNONLYFSDIRS = 1
    BIF_DONTGOBELOWDOMAIN = 2
    BIF_STATUSTEXT = 4
    BIF_RETURNFSANCESTORS = 8
    BIF_EDITBOX = 16
    BIF_VALIDATE = 32
    BIF_NEWDIALOGSTYLE = 64
    BIF_BROWSEINCLUDEURLS = 128
    BIF_USENEWUI = (BIF_EDITBOX Or BIF_NEWDIALOGSTYLE)
    BIF_BROWSEFORCOMPUTER = &H1000
    BIF_BROWSEFORPRINTER = &H2000
    BIF_BROWSEINCLUDEFILES = &H4000
    BIF_SHAREABLE = &H8000
End Enum
 
Public Function GetFolder(Title As String, OwnerHWnd As Long, Optional BIFMode As BIF_Enum = BIF_RETURNONLYFSDIRS Or BIF_USENEWUI) As String
    Dim IDList As Long
    Dim Buf As String * MAX_PATH, BI As BrowseInfo
 
    With BI
     .pidlRoot=0&
        .hWndOwner = OwnerHWnd
        .lpszTitle = lstrcat(Title, vbNullChar)
        .ulFlags = BIFMode
    End With
 
    IDList = SHBrowseForFolder(BI)
    If IDList Then
        Call SHGetPathFromIDList(IDList, Buf)
        Call CoTaskMemFree(IDList)
        GetFolder = Split(Buf, vbNullChar)(0)
    End If
End Function
 
Et celui avec lequel je la lance :
 
path_img = GetFolder("Veuillez selectionner le repertoire de desination.", Me.Hwnd)
 
je cherche à forcer un répertoire bien precis.
 
Merci d'avance

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed