boite de dialogue

Le
pascal leclercq
voila mon probleme j'utilise le code suivant pour adresser des boites de
dialogues pour adresser des noms de dossiers et de fichiers.
le systeme me renvoie bien des noms de dossiers quand j'utilise la constante
NO_OPTIONS=0 mais des que je change la constante pour qu'il me retourne des
noms de fichiers ( &h4000& ) il me renvoie une erreur indiquant que le nom de
fichier n'existe pas.
pourquoi ?

Const WINDOW_HANDLE = 0
Const NO_OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:",
NO_OPTIONS, "C:")
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
wscript.echo objpath
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT
Le #674872
"pascal leclercq" dans le message de
news:
Bonjour,

| voila mon probleme j'utilise le code suivant pour adresser des boites
| de dialogues pour adresser des noms de dossiers et de fichiers.
| le systeme me renvoie bien des noms de dossiers quand j'utilise la
| constante NO_OPTIONS=0 mais des que je change la constante pour qu'il
| me retourne des noms de fichiers ( &h4000& ) il me renvoie une erreur
| indiquant que le nom de fichier n'existe pas.
| pourquoi ?

Tout simplement parce que le comportement avec l'option
BIF_BROWSEINCLUDEFILES est buggée sous XP. Une solution de contournement
consiste à utiliser l'objet UserAccounts.CommonDialog :

--- Coupez ici : BrowseForFile.vbs ---
Function BrowseForFile (strStartPath)

Set oDialog = CreateObject ("UserAccounts.CommonDialog")
With oDialog
.Filter = "All Files|*.*"
.FilterIndex = 1
.InitialDir = strStartPath
iRet = .ShowOpen
If iRet = 0 Then
BrowseForFile = ""
Else
BrowseForFile = .FileName
End If
End With

End Function

WScript.Echo BrowseForFile ("C:")
--- Coupez ici : BrowseForFile.vbs ---

--
Gilles LAURENT
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme