Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélection d'un répertoire

11 réponses
Avatar
Kevin
Bonjour,

Voici la fonction que j'utilise pour sélectionner un fichier par le biais
d'une boîte de dialogue...

***

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias
"GetOpenFileNameA" (pOpenfilename As OpenFileName) As Long

Private Type OpenFileName
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Function GetFileName(Filter As String, InitialDir As String, Title As
String) As String
Dim OpenFile As OpenFileName
Dim lReturn As Long

With OpenFile
.lStructSize = Len(OpenFile)
.lpstrFilter = Filter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
.lpstrInitialDir = InitialDir
.lpstrTitle = Title
.flags = 0
End With

lReturn = GetOpenFileName(OpenFile)

If lReturn = 0 Then
GetFileName = ""
Else
GetFileName = Trim(OpenFile.lpstrFile)
End If
End Function

***

Quel paramètre faut-il modifier dans cette fonction pour pouvoir
sélectionner un chemin de répertoire et non un fichier?

Merci d'avance!

Salut.

10 réponses

1 2
Avatar
Jacques93
Bonjour Kevin,

A ma connaissance, on ne peut pas sélectionner de répertoire avec
cette API. Il vaudrait mieux regarder du côté de l'API SHBrowseForFolder
ou de la méthode BrowseForFolder de l'objet Shell.Application. Voir le
fil du 03/07/2005 de 9:53 initié par Gaston.


Bonjour,

Voici la fonction que j'utilise pour sélectionner un fichier par le biais
d'une boîte de dialogue...

***

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias
"GetOpenFileNameA" (pOpenfilename As OpenFileName) As Long

Private Type OpenFileName
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Function GetFileName(Filter As String, InitialDir As String, Title As
String) As String
Dim OpenFile As OpenFileName
Dim lReturn As Long

With OpenFile
..lStructSize = Len(OpenFile)
..lpstrFilter = Filter
..nFilterIndex = 1
..lpstrFile = String(257, 0)
..nMaxFile = Len(OpenFile.lpstrFile) - 1
..lpstrFileTitle = OpenFile.lpstrFile
..nMaxFileTitle = OpenFile.nMaxFile
..lpstrInitialDir = InitialDir
..lpstrTitle = Title
..flags = 0
End With

lReturn = GetOpenFileName(OpenFile)

If lReturn = 0 Then
GetFileName = ""
Else
GetFileName = Trim(OpenFile.lpstrFile)
End If
End Function

***

Quel paramètre faut-il modifier dans cette fonction pour pouvoir
sélectionner un chemin de répertoire et non un fichier?

Merci d'avance!

Salut.



--
Cordialement,

Jacques.

Avatar
Modeste
Bonsour® Jacques93
Voir aussi là :
http://j-walk.com/ss/excel/tips/tip29.htm
et exemple là :
http://www.bmsltd.ie/DLCount/DLCount.asp?file=BrowseForFolder.zip

@+
Avatar
Jacques93
Bonsour® Jacques93
Voir aussi là :
http://j-walk.com/ss/excel/tips/tip29.htm
et exemple là :
http://www.bmsltd.ie/DLCount/DLCount.asp?file=BrowseForFolder.zip

@+


Les deux liens me semble t-il utilisent l'API SHBrowseForFolder , qui
est indiqué dans mon post, et expliquée dans le fil par rgi ;-)

Un plus cependant pour le second, qui utilise les possibilités de
CallBack de l'API :-D

Ou me trompe je ?

--
Cordialement,

Jacques.

Avatar
Modeste
Bonsour®
Jacques93 wrote:
Les deux liens me semble t-il utilisent l'API SHBrowseForFolder , qui
est indiqué dans mon post, et expliquée dans le fil par rgi ;-)
Ou me trompe je ?
;o)))

tout au plus un indice complémentaire vers qui sont nos maîtres !!!!

@+

Avatar
Jacques93
Bientôt, re-bonjour Modeste
Bonsour®
Jacques93 wrote:

Les deux liens me semble t-il utilisent l'API SHBrowseForFolder , qui
est indiqué dans mon post, et expliquée dans le fil par rgi ;-)
Ou me trompe je ?


;o)))
tout au plus un indice complémentaire vers qui sont nos maîtres !!!!

@+


Chacun les siens, et comme dit jps chaque mili/centi/deca, etc maîtres
s'y reconnaitra. Pour moi c'est par là :

http://vbnet.mvps.org/code/browse/browsefolders.htm

Qui a copié ? :-D


--
Cordialement,

Jacques.


Avatar
jps
ben, jacques, c'est que nous on parle plutôt en hectos dans le coin...ou
aussi en pièces
jps

"Jacques93" a écrit dans le message de
news:
Chacun les siens, et comme dit jps chaque mili/centi/deca, etc maîtres s'y
reconnaitra. Pour moi c'est par là :


Avatar
Jacques93
Bonjour jps,
ben, jacques, c'est que nous on parle plutôt en hectos dans le coin...ou
aussi en pièces
jps

"Jacques93" a écrit dans le message
de news:

Chacun les siens, et comme dit jps chaque mili/centi/deca, etc maîtres
s'y reconnaitra. Pour moi c'est par là :





Hips..., Hectos... Litres, ou hectos... maitre jps ?

--
Cordialement,

Jacques.


Avatar
jps
....plasmes, parfois, mais là, c'est quand on a un peu trop chargé la
mule...
jps

Hips..., Hectos... Litres, ou hectos... maitre jps ?

--
Cordialement,

Jacques.


Avatar
Modeste
Bonsour®
Jacques93 wrote:
http://vbnet.mvps.org/code/browse/browsefolders.htm
Qui a copié ? :-D



;o)))
peut-on parler de copie ???
Eternel paradoxe de la poule et de l'oeuf

à ce niveau (MVP) je pense que nos maitres sont tous destinataires en avant
première des mêmes documents techniques Microsoft et MSDN
notament :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shell/browseforfolder.asp
et qu'en terme d'antériorité, seule la diffusion vers les "vulgus pecum" est
significative...
;o)))

Avatar
AV
tous destinataires en avant
première des mêmes documents techniques Microsoft et MSDN


Même que si tu veux quelques centimètres de CDs et dans la langue que tu veux !
Une ommision consternante : pas d'éditions en langue d'Oc!

AV

1 2