IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Fenêtre Parcourir pour répertoire


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Par défaut Fenêtre Parcourir pour répertoire
    Bonjour,

    Je souhaite (si cela est possible ) afficher la fenêtre parcourir qui renvoie un fichier (utilisation de commonDialog) mais par contre je voudrais qu'elle renvoie un répertoire, comment faire?

    Merci d'avance pour vos réponses

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Bonjour,

    l'objet CommonDialog ne renvoie pas de répertoire, tu dois passer par une API :

    http://vb.developpez.com/faq/?page=Fichiers#select_rep

  3. #3
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Y'a aussi le controle DirListBox tout bête...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Par défaut
    En fait mon problème est que le client souhaite une fenêtre Parcourir mais veut sélectionner un dossier et pas un fichier. J'avais déja vu cette solution mais elle ne correspond pas aux attentes donc je ne sais pas.

    Si jamais vous avez d'autre solution

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Gni ? je parle français ou bien ?

    Tu as 2 solutions toutes cuites. En quoi elle ne correspondent pas à tes attentes ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Par défaut
    en fait c'était pour conserver l'interface que je demandais, sinon ces 2 solutions je les avais trouvé.
    J'ai regardé la tienne SelectFolder, mais je n'ai pas trouver comment paramétrer le chemin accés à l'ouverture de boite de dialogue, il y a un moyen?

  7. #7
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    avec ça c'est possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    Private Const BIF_STATUSTEXT As Long = &H4&
    Public Const BIF_RETURNONLYFSDIRS As Long = &H1
    Public Const BIF_DONTGOBELOWDOMAIN As Long = &H2
    Public Const BIF_RETURNFSANCESTORS As Long = &H8
    Public Const BIF_BROWSEFORCOMPUTER As Long = &H1000
    Public Const BIF_BROWSEFORPRINTER As Long = &H2000
    Public Const BIF_BROWSEINCLUDEFILES As Long = &H4000
    Public Const BIF_NONEWFOLDERBUTTON As Long = &H200
    Public Const BIF_NEWDIALOGSTYLE As Long = &H40
    Public Const BIF_UAHINT As Long = &H100
    Public Const BIF_EDITBOX As Long = &H10
     
    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 SHGetPathFromIDList Lib "Shell32" (ByVal pidList As Long, _
                                                                ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
                                                                      ByVal lpString2 As String) As Long
    Private Const BFFM_INITIALIZED As Long = 1
    Private Const BFFM_SELCHANGED As Long = 2
    Private Const BFFM_SETSTATUSTEXT As Long = (WM_USER + 100)
    Private Const BFFM_SETSELECTION As Long = (WM_USER + 102)
     
    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
    Private m_strDirectory As String
     
     
    Public Function SelectFolder(Titre As String, Handle As Long, _
                                 Optional uFlags As Long = BIF_RETURNONLYFSDIRS, _
                                 Optional ByVal StartDir As String) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BROWSEINFO
     
        m_strDirectory = StartDir & vbNullChar
     
        strTitre = Titre
        With tBrowseInfo
            .hwndOwner = Handle
            .lpszTitle = lstrcat(strTitre, "")
            .ulFlags = uFlags + BIF_NEWDIALOGSTYLE + BIF_NONEWFOLDERBUTTON '+ BIF_DONTGOBELOWDOMAIN
     
            .lpfnCallback = GetAddressOfFunction(AddressOf BrowseCallbackProc)
        End With
     
        lpIDList = SHBrowseForFolder(tBrowseInfo)
     
        If (lpIDList) Then
            strBuffer = String(MAX_PATH, vbNullChar)
            SHGetPathFromIDList lpIDList, strBuffer
            CoTaskMemFree lpIDList
            SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
        Else
            SelectFolder = vbNullString
        End If
     
    End Function
     
    Private Function BrowseCallbackProc(ByVal hwnd As Long, ByVal uMessage As Long, ByVal lpIDList As Long, _
                                        ByVal pData As Long) As Long
     
    Dim lngRet As Long
    Dim strBuffer As String
     
        On Error Resume Next
        Select Case uMessage
        Case BFFM_INITIALIZED
            Call SendMessage(hwnd, BFFM_SETSELECTION, 1, m_strDirectory)
        Case BFFM_SELCHANGED
            strBuffer = Space(MAX_PATH)
            lngRet = SHGetPathFromIDList(lpIDList, strBuffer)
            If lngRet = 1 Then
                Call SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, strBuffer)
            End If
        End Select
        BrowseCallbackProc = 0
    End Function
     
    Public Function GetAddressOfFunction(P As Long) As Long
        GetAddressOfFunction = P
    End Function
    Edit: rajout des décarations complètes

Discussions similaires

  1. [Débutant] Menu Déroulant pour parcourir un répertoire
    Par nathantahiti dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/07/2011, 11h46
  2. Bouton pour parcourir les répertoires et lire un fichier?
    Par mamid1706 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/08/2007, 15h39
  3. [VBA-E]Créer un dossier dans la fenêtre Parcourir
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/05/2006, 11h37
  4. Parcourir un répertoire et récupérer tous les fichiers
    Par Sniper94-2 dans le forum Windows
    Réponses: 6
    Dernier message: 08/09/2005, 01h23
  5. Réponses: 4
    Dernier message: 20/04/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo