IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Set objDialog = CreateObject("UserAccounts.CommonDialog") sous Vista [FAQ]


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut Set objDialog = CreateObject("UserAccounts.CommonDialog") sous Vista
    Bonjour,

    J'utilise le script suivant pour permettre à l'utilisateur de sélectionner un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set objDialog = CreateObject("UserAccounts.CommonDialog")
     
    objDialog.Filter = "All Files|*.*"
    objDialog.InitialDir = "C:\"
    intResult = objDialog.ShowOpen
     
    If intResult = 0 Then
        Wscript.Quit
    Else
        Wscript.Echo objDialog.FileName
    End If
    Sur Windows XP tout va bien, sur Vista, j'ai le message suivant :
    Un composant ActiveX ne peut pas créer un objet : 'UserAccounts.CommonDialog'

    Merci à tous ceux qui voudront bien m'aider...
    Caroline. ;-)

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Salut,

    c'est peut-être lié à l'UAC. Essaie de la désactiver (le PC devra rebooter) et de relancer ton script pour voir si ça vient de là.

    Karl3i.

  3. #3
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 297
    Points : 3 551
    Points
    3 551
    Par défaut
    bonjour,

    il s'agissait d'un hack utilisable uniquement sous xp
    voir ici: http://blogs.msdn.com/gstemp/archive.../17/74868.aspx

    une solution (parmi bien d'autres) ici: http://www.jsware.net/jsware/scripts.php3#brows
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Bonjour Karl et merci.

    J'ai donc désactiver l'UAC en suivant les instructions fournies par Microsoft et perdu, ça ne change rien...

    *******************************************************
    Bonjour Omen et merci également !

    J'ai donc installé la dll sur mon xp dans un premier temps pour "bien maîtriser l'installation", tout fonctionne. Sur vista, j'ai un souci à l'inscription de la dll dans la base de registre... apparemment, vista ne souhaite pas que je l'inscrive...
    Erreur 0x80004005 (module chargé, mais l'appel à la dll dllRegisterServer à échoué)
    *****************************************************
    Enfin, c'est complètement fou, j'arrive en vbscript à ouvrir un répertoire (et ses fichiers du coup) mais pas un seul fichier !!!! C'est vraiment frustrant !

    cf code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	Dim a,f,i,w
    	Set a=CreateObject("Shell.Application")
    	Set w=CreateObject("WScript.Shell")
     
    	Set f=a.BrowseForFolder(&H0&,Msg,&h1&)
    	B=f.ParentFolder.ParseName(f.Title).Path
     
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    	oFSO.CopyFolder B,"c:\test\",True 
    	If Err.Number<>0 Then
    		B=Null
    		If f.Title="Desktop" Then B=w.SpecialFolders("Desktop")
    		i=InStr(f.Title, ":")
    		If i>0 Then B=Mid(f.Title,i-1,2) & "\"
    	End If
    	Set oFSO = nothing
    	Set f = nothing
    	Set w = nothing
    	Set a = nothing
    Caroline. ;-)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Bon, j'ai un peu avancé...

    J'ai désactivé la sécurité momentanément et j'ai pu inscrire ma dll, mais quand j'exécute mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	Set objDialog = CreateObject("Jsdlgbox.browser")
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    	'objDialog.InitialDir = "C:\"
    	intResult = objDialog.openbox
    	If intResult = "" Then
    	   	 MsgBox("Aucun fichier sélectionné !")
    	else
    		MsgBox(intResult)
    	End If
    	Set oFSO = nothing
    	Set objDialog = nothing
    J'ai un autre message :

    Windows Vista is not supported (erreur n°800A0258)
    Pas facile......
    Caroline. ;-)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Bon, à priori cette commande ne marche que sous XP :
    http://www.microsoft.com/technet/scr...5/hey0128.mspx

    Mais que vais-je bien pouvoir utiliser sous Vista..... j'suis foutue...
    Caroline. ;-)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Pour info, j'ai trouvé un autre script pour ouvrir un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    *************************
    Set objDialog = CreateObject("SAFRCFileDlg.FileOpen")
    Ret = objDialog.OpenFileOpenDlg
    WScript.Echo Ret, objDialog.FileName
     
    *************************
    ça marche bien sous XP, mais toujours pas sous Vista... c'est pas juste !
    Caroline. ;-)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Bon, c'est résolu... les puristes vont prendre peur....

    J'ai bien utiliser ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ************************************
    Set objDialog = CreateObject("SAFRCFileDlg.FileOpen")
    Ret = objDialog.OpenFileOpenDlg
    WScript.Echo Ret, objDialog.FileName
    ************************************
    Comme il se base sur une dll d'xp (safrcdlg.dll), voici ce que j'ai fait :
    1- Désactivation de l'UAC
    2- Inscription de ma dll avec regsvr32 sous c:\program files\system32
    3- Réactivation de l'UAC
    4- Test et au miracle j'ai enfin ma boîte de dialogue ! Cool !

    Merci à tous !
    Caroline. ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo