begin process at 2012 02 14 15:44:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Fichier / Disque

 > 

selection d'un rep avec commondialog


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

selection d'un rep avec commondialog

lundi 9 mai 2005 à 16:05:52 | selection d'un rep avec commondialog

odan71

bonjour,
j'ai besoin de récuperer le chemin d'un dossier en reseau, seulement le dirlistbox ne le permet pas. la commondialog ne permet, quant à elle, de ne selectionner que des fichiers. pourtant j'ai déjà vu des soft fonctionner avec cette commondialog qui permettait la selection de dossier.
est-ce-que quelqu'un sait comment faire?
merci


"Si tu téléphones à une voyante et qu'elle ne décroche pas avant que ça sonne, raccroche." -- Jean-Claude Vandamme

odan71
lundi 9 mai 2005 à 16:24:45 | Re : selection d'un rep avec commondialog

econs

Administrateur CodeS-SourceS
Réponse acceptée !
Tu ne peux pas le faire avec un commonDialog.

Copies ceci dans un module, nommé Module1 par exemple.
Ensuite, l'appel se fait comme ceci :


monRep = Module1.GetDirectory("Selectionnez un répertoire")


'------------------------------------------------------------------------------
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Const DirFlags = vbArchive Or vbSystem Or vbHidden Or vbReadOnly

Private Pattern As String



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 BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2
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 Const MAX_PATH = 260

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type

'----------------------------------------------
'------Déclarations propres à la fonction------
'----------------------------------------------
Private Type ListeFichier
    Fichiers() As WIN32_FIND_DATA
    chemin() As String * MAX_PATH
    Nombre As Long
End Type

Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800

'---Les API---
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
          (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
          (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)




Private Function GetDirectory(stTitre As String) As String
'   This function let the operator choose a directory.
Dim stTmp As String
Dim biStruct As BrowseInfo
Dim lgRep As Long

' On passe le handle de la fenêtre appellante
' (ici on suppose que c'est la fenêtre courante).
biStruct.hWndOwner = Me.hWnd
' On utilise lstrcat pour récupérer un pointeur sur une chaîne.
biStruct.lpszTitle = lstrcat(stTitre, vbNullString)
biStruct.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
' Affichage de la fenêtre de sélection.
lgRep = SHBrowseForFolder(biStruct)
If lgRep Then
    stTmp = Space$(MAX_PATH)
' On récupère le répertoire choisit.
    SHGetPathFromIDList lgRep, stTmp
    stTmp = Left$(stTmp, InStr(stTmp, vbNullChar) - 1)
Else
    stTmp = vbNullString
End If
' Retourne la valeur (ou un chaîne vide en cas d'erreur).
GetDirectory = stTmp


End Function

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



Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
lundi 9 mai 2005 à 16:54:03 | Re : selection d'un rep avec commondialog

odan71

merci Manu :-)


"Si tu téléphones à une voyante et qu'elle ne décroche pas avant que ça sonne, raccroche." -- Jean-Claude Vandamme

odan71


Cette discussion est classée dans : dossier, permet, rep, selection, commondialog


Répondre à ce message

Sujets en rapport avec ce message

commondialog selection de police [ par vib ] Bonjour, Je crée un prog qui permettra à l'utilisateur de créer des applications affichant un menu pour cd ou bureau. Ces applications sont don c susc common dialog selection de dossier [ par erc77 ] Bonjour,je cherche une "common dialog" (si elle existe) pour selectionner un repertoire et en créer un nouveau .Merci par avanceErc Selection.find sur VBA Excel [ par daph ] j'utilise le code Selection.Find(What:=DOSSIER_CHERCHE, After:= ....pour trouver dans un fichier, la ligne contenant un n° de dossier (DOSSIER_CHERCH Problème avec CommonDialog [ par philippe ] J'ai mis un commondialog sur le form.tout fonctionne ou presque.Quand j'écris Sub Command1_Click() CommonDialog1.ShowFontEnd Subj'ai un message d' Selection de dossiers [ par panpan ] J'ai un petit problème,Pour mon programme j'ai besoin que l'utilisateur puisse sélectionner des dossier sur ses disque ou son stoquer des fichier et d flags de commondialog ouvrir [ par XWinnieX ] J'aimerais afficher une boite de dialogue pour pouvoir selectionner un dossier et non un fichier...il faudrait qu'elle n'affiche que des dossiers et q InputBox selection de cellule [ par m_kael ] Salut, je voudrais savoir s'il y a moyen de faire apparaître une InputBox avec un petit bouton qui permet de selectionner une cellule (comme qd on ins pb convertir .xls en .dbf avec vba (code fournit) [ par emilekader ] salut, le code fournit ci dessous fonctionne en vba, j'ouvre un classeur excel puis le lance. La macro traite tous les fichiers d'un dossier mais le p pb convertir .xls en .dbf avec vba (code fournit) [ par emilekader ] salut, le code fournit ci dessous fonctionne en vba, j'ouvre un classeur excel puis le lance. La macro traite tous les fichiers d'un dossier mais le p pb convertir .xls en .dbf avec vba (code fournit) [ par emilekader ] salut, le code fournit ci dessous fonctionne en vba, j'ouvre un classeur excel puis le lance. La macro traite tous les fichiers d'un dossier mais le p


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,507 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales