Variable environnement %ProgramFiles% et l' objet Run ? [Résolu]

Signaler
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010
-
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010
-
Bonjour,

J' ai un petit souci pour lancer un vbs qui se trouve dans "c:\Program Files" dont voici le bout de code :

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
If objFSO.FileExists(FichierLog) And ControlDate = True Then
    MsgBox "Pensez à changer de mot de passe assez rapidement" & vbcrlf & _
    "avant expiration de celui-ci", VbInformation
Else
    MsgBox "Votre mot de passe Nérée a expiré !!!" & vbcrlf & _   
    "Merci de le modifier rapidement sinon cetains scripts seront inopérationnels", VbExclamation
    oProgramFiles = WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
    oChemin = oProgramFiles & "\ChgPwd\ChgPwdAdmNeree.vbs"
    MsgBox oChemin  ==> il m' affiche bien le chemin "c:\Program Files\ChgPwd\ChgPwdAdmNeree.vbs"
    WshShell.Exec oChemin  ===> par contre ici il me dit quele fichier spécifié est introuvable.Pourquoi ???
    WScript.Quit
End If
La solution de contournement pour le moment que j' ai trouvé et de mettre le fichier dans un répertoire à la racine.

Ex: c:\ChgPwd\ChgPwdAdmNeree.vbs

J' aimerais savoir tout de même pourquoi il ne trouve pas le cheminoProgramFiles & "\ChgPwd\ChgPwdAdmNeree.vbs" alors qu' apparemment il me l' affiche correctement dans une messagebox.

Merci d' avance pour vos réponses.

Cordialement.

2 réponses

Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010

Re,

Merci pour ta réponse mais je viens d' avoir la solution sur un autre forum qui est la suivante et qui fonctionne à merveille

La ligne supprime les problèmes d'espace, en fait si le chemin de ton fichier comporte des espaces il faut l'encadrer de "..

oChemin = oProgramFiles & "\ChgPwd\ChgPwdAdmNeree.vbs"
If InStr(oChemin, " ") > 0 Then oChemin = """" & oChemin & """"
MsgBox oChemin
WshShell.Run oChemin

@++++
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

possibilité : il y a un espace entre Program et Files, et Shell n'aime pas trop. tu devras passer ta chaîne en "NOM COURT".
désolé je ne sais pas comment le récupérer en VBS....

en tout cas tu peux au moins faire le test manuellement
probable que le chemin soit le premier :
oChemin  = "C:\Progra~1\ChgPwd\ChgPwd~1.vbs"

++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp