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

boite de dialogue

1 réponse
Avatar
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

1 réponse

Avatar
Gilles LAURENT
"pascal leclercq" a écrit
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