Faire un "File Open Dialog" [VBS] - VB/VBA/VBS - Programmation
Marsh Posté le 20-07-2005 à 22:59:10
Ce n'est effectivement pas si simple. Mes premières fonctions concernant ce problème étaient ok sur du xp, mais ne fonctionnaient pas sur du 2003 server.
Je suis parti d'un exemple de 3 lignes trouvé je ne sais plus ou pour batir la fonction suivante. ( testée sur du xp (pro) et du 2003 server )
Code :
|
Marsh Posté le 21-07-2005 à 09:21:51
Ca marche pas sous Win 2000 Professionnel :
"Un composant ActiveX ne peut pas creer un objet : 'SAFRCFileDlg.FileOpen'"
piloupy
Marsh Posté le 21-07-2005 à 13:59:02
set WSHShell = wscript.CreateObject("wscript.Shell" ) |
Ce code marche sur certaines plateformes. En ce qui me concerne, je cherche ce qu'il faudrait installer pour que ca marche sur un Windows 2000 Professionnel.
J'ai 2 Windows 2000 Professionnel 5.00.2195, Service Pack 4, et ca marche sur l'un et pas sur l'autre. J'ai tente de savoir pourquoi, mais je n'y parviens pas.
Sur le Windows 2k qui marche, DirectX 9.0b est installe.
Sur le Windows 2k qui ne marche pas, Directx 9.0c est installe (yavait le DX 7.0 avant).
En me promenant avec mon arpenteur sur la Toile (lol), je crois avoir trouve que c'est le fichier C:\WINDOWS\system32\comdlg32.ocx qui contient la classe MSComDlg ...
Je ne sais pas trop quoi faire de plus ... Aidez-moi par pitie
piloupy
Marsh Posté le 21-07-2005 à 14:48:24
Sur ce site :
http://www.bellamyjc.net/fr/vbsgeneralites.html
Il faut telecharger le fichier :
"vb5ccein.exe"
Et le code suivant marchera :
set WSHShell = wscript.CreateObject("wscript.Shell" ) |
J'ai trouve la reponse sur ce site :
http://www.softimage.com/community [...] g00947.htm
En plein milieu d'un post, et c'est la premiere fois que je vois cette reponse ...
Comme vous pouvez le voir, le secret pour ouvrir une "File Open Dialog" (selectionner un fichier dans un browser) est un secret bien cache, car cette fonction doit etre reservee a des utiliseurs avances seulement. Les utilisateurs basiques n'ouvrent pas de fichier : ils refont toujours tout a zero.
C'est a se demander pourquoi on a des disques durs ... quand on sait que Microsoft ne preconise pas le chargement de donnees presentes dessus ... jvous jure ...
piloupy
Marsh Posté le 20-07-2005 à 19:14:26
Bonjour,
Contexte :
- Windows 2000 Professionnel
- VBScript (Visual Basic Script)
Question : Je souhaite ouvrir une fenetre pour selectionner un fichier (en VBScript).
C'est la classique "File Open Dialog" que vous avez quand vous lancez n'importe quelle application et que vous faites un Ctr+O. Bien que ce soit la chose la plus simple que l'on puisse demander, j'epluche des pages et des pages sans trouver de methodes qui marchent.
Voici quelques exemples recurrents qui ne marchent pas (au moins dans mon environnement) :
set WSHShell = wscript.CreateObject("wscript.Shell" )
set objDlg = wscript.CreateObject("MSComDlg.CommonDialog" )
objDlg.Filter = "All Files (*.*)|*.*|VBScript Files (*.vbs)|*.vbs"
objDlg.FilterIndex = 2
objDlg.MaxFileSize = 260
objDlg.CancelError = true
objDlg.ShowOpen
WSHShell.popup objDlg.Filename
Dim oShExt, code
' create object reference
Set oShExt = WScript.CreateObject("ShellExtension.ShellObjects" )
' now we set the properties of the dialog
oShExt.WSHDialogTitle = "Born's Open dialog" ' Title
oShExt.WSHDialogFilter = "All files (*.*)" & chr(0) & _
"*.*" & chr(0) & _
"VBScript files (*.vbs)" & chr(0) & _
"*.vbs" & chr(0) & _
"JScript files (*.js)" & chr(0) & _
"*.js" & chr(0) & _
"WSC files (*.wsc)" & chr(0) & _
"*.wsc" & chr(0)
oShExt.WSHDialogFilterIndex = 2 ' 2nd entry selected
oShExt.WSHDialogInitDir = "C:\" ' empty string = current directory
If oShExt.WSHShowOpen () <> 0 Then
MsgBox "File " & oShExt.WSHDialogFile
Else
MsgBox "Sorry, no file selected"
End if
Set ObjFSO = CreateObject("Shell.FileSystemObject.CommonDialog" )
ObjFSO.Filter = "VBScripts|*.vbs|Text Documents|*.txt|All Files|*.*"
ObjFSO.FilterIndex = 3
ObjFSO.InitialDir = "c:\myscripts"
InitFSO = ObjFSO.ShowOpen
If InitFSO = False Then
Wscript.Echo "Script Error: Please select a file!"
Wscript.Quit
Else
Wscript.Echo "You selected the file: " & ObjFSO.FileName
End If
Je suis sidere que l'information soit si dure a trouver alors que c'est une demande assez commune ... Je continue mes recherches.
Merci d'avance.
piloupy