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 :

Choisir "pictures" comme répertoire racine


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    496
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 496
    Points : 123
    Points
    123
    Par défaut Choisir "pictures" comme répertoire racine
    bonsoir
    j'utilise "SHBrowseForFolder" pour sélectionner un répertoire j'aurais voulu mettre le répertoire "Images" ou "pictures" ou "mypictures" comme répertoire de départ . je pense que je dois agir sur "pIDLRoot" mais comment coder

    merci d'avance

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Bonjour;

    Il y a peut-être ce Code qui répond à ta demande.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    496
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 496
    Points : 123
    Points
    123
    Par défaut
    Merci
    j'ai fait ce qui suit ce qui me manquait c'était la fonction "SHGetSpecialFolderLocation" et "SHGetPathFromIDList " et ce qui représente le répertoire picture Public Const CSIDL_MYPICTURES = &H27

    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
    Option Explicit
    'ensemble pour déclarer le répertoire qui contient les photos
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpBI As BROWSEINFO) As Long 'affiche une boite de dialogue _
                qui permet à l'utilisateur de sélectionner un répertoire
    'Si l'utilisateur choisit le bouton d'annulation dans la zone de dialogue, la valeur de retour est NULLE.
    'adresse de la structure "Browseinfo" qui contiens les informations utilisé pour afficher la boîte de dialogue.
     
    Private Type BROWSEINFO 'description de la boite de dialogue
        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
    'BROWSEINFO est une structure qui contient les paramètres pour la fonction SHBrowseForFolder. _
        Elle reçoit les informations sur le dossier que l'utilisateur a sélectionné.
    'hwndOwner: Handle de la fenêtre qui affiche la boîte de dialogue
    'pidlRoot: Pointeur sur un identifiant de liste précisant l'emplacement du dossier "racine" pour le parcours _
        de dossiers. Seul le dossier spécifié ainsi que ses sous-dossiers apparaîtront dans la boîte de dialogue. _
        Ce membre peut être à Null mais dans ce cas la racine par défaut sera le bureau.
    'pszDisplayName: adresse d'un buffeur pour recevoir le nom d'affichage du répertoire choisie par l'utilisateur. _
        la taille de ce buffeur est présumé être  à MAX_path.
    'lpszTitle: adresse de d'une chaine de caractère montrée au-dessus de l'arbre dans la zone de dialogue. _
        Cette chaine peut être employée pour indiquer des instructions à l'utilisateur.
    'ulFlags: Valeur spécifiant les types de dossiers à afficher dans la boîte de dialogue ainsi que d'autres options _
        Ce membre peut inclure zéro ou une combinaison des valeurs suivantes: _
        BIF_BROWSEFORCOMPUTER;  Retourne seulement un ordinateur. Si l'utilisateur sélectionne autre chose qu'un ordinateur, le bouton OK est grisé. _
        BIF_browseforprinter:   Retourne seulement une imprimante. Si l'utilisateur sélectionne autre chose qu'une imprimante, le bouton OK est grisé. _
        BIF_browseincludefiles: la boite de dialogue fera apparitre les fichiers en plus des répertoires _
        BIF_dontgobelowdomain; 'inclut pas les dossiers réseau en dessous du niveau de domaine dans la vue de l'arborescence. _
        BIF_editbox:.Version 4,71 la boite de dialogue l'utilisateur peut introduire au clavier le nom d'un article. _
        BIF_returnfsancestors: Si l'utilisateur choisit n'importe quoi autre qu'un ancêtre de système de fichiers, le bouton OK est grisé. _
        BIF_returnonlyfsdirs:si lutilisateur choisit autre chose qu'un répertoire, le bouton OK est grisé. _
        BIF_statustext: incluent un secteur de statut dans la zone de dialogue.  La fonction de rappel de service peut placer le texte de statut en envoyant des messages à la zone de dialogue. _
        BIF_validate: Version 4,71 de .  Si l'utilisateur dactylographie un nom inadmissible dans la boîte d'édition, _
            le dialogue de lecture rapide appellera BrowseCallbackProc de l'application avec le message de BFFM_validatefailed. _
            Ce drapeau est ignoré si BIF_editbox n'est pas indiqué.
    'lpfn:   adresse de  d'une fonction application-définie que la zone de dialogue appelle quand un événement se produit. _
        Pour plus d'information, voyez la fonction de BrowseCallbackProc. _
        Ce membre peut être NUL.
    'lParam: Application-a défini la valeur que la zone de dialogue passe à la fonction de rappel de service, _
        si on est indiqué.
    'iImage: variable  pour recevoir l'image qui est associée au répertoire choisi.  L'image est indiqué comme index sur la liste d'image de système.
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
     
    Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, _
                                                        ByVal nFolder As Long, ppidl As Long) As Long
     
    Public Const CSIDL_DRIVES = &H11
    Public Const CSIDL_MYPICTURES = &H27
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long 'converti un identifiant de liste en en path de fichier
     
     
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
        ByVal lpString2 As String) As Long 'the lstrcat function appends one string to another.
     
     
    Public Function SelectFolder(Titre As String, Handle As Long) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BROWSEINFO
    Dim retval As Long  ' 'valeur de retour
     
    strTitre = Titre
    With tBrowseInfo
        .hwndOwner = Handle
        retval = SHGetSpecialFolderLocation(Handle, CSIDL_MYPICTURES, .pidlRoot)
        '.pszDisplayName = Space(260)
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
     
    End Function

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