Erreur lancement script VBS [VBS] - VB/VBA/VBS - Programmation
Marsh Posté le 10-06-2013 à 16:15:09
Après y avoir passer toute une après-midi, j'ai trouvé :
Voici ma correction :
If TypeOS = "64" Then
VarCmd.Run "C:WindowsSysWOW64PRINTUI.EXE /Sr /n " & """" & NomIMP & """" & " /a " &_
"""" & Chemin & NomSite & "_"& TypeOS &".dat"& """",,TRUE
Else
VarCmd.Run "PRINTUI.EXE /Sr /n " & """" & NomIMP & """" & " /a " &_
"""" & Chemin & NomSite & "_"& TypeOS &".dat"& """",,TRUE
End If
On est obligé de spécifier le répertoire SysWOW64 pour un poste 64bit.
Il y a-t'il une astuce pour le spécifier directement dans le script?
Marsh Posté le 10-06-2013 à 17:33:35
Bonjour,
cela m"étonnerait tel qu'écrit le code fonctionne … Merci aussi d'utiliser l'icône prévue pour le code.
Sinon comme tu l'as déjà spécifié dans le script, je ne vois pas où tu veux en venir ?
A part utiliser une variable d'environnement ou modifier le PATH système …
Bref, chienlit en VBS et si facile en commande DOS !
Marsh Posté le 10-06-2013 à 20:54:28
Bonjour,
Mon script dans sa globalité :
''----------------------------------------------''
''----------------------------------------------''
'' Script d'installation d'imprimantes ''
''----------------------------------------------''
''----------------------------------------------''
REM -----------------Options lié aux variables et erreurs-----------------
'Verrouillage des variables'
Option Explicit
'Gestion des erreurs : Ne s'arrete pas lorsqu'il rencontre une erreur'
'On Error Resume Next
REM -----------------Déclaration des variables-----------------
Dim NomPC,objWMIService, ObjProcess, TypeOS, NomIMP, NomSite, Chemin, VarCmd, ObjFSO
REM -----------------Initialisation des variables-----------------
'La variable NomPC reçoit le nom du PC
NomPC = "."
'J'instancie la variable ObjWMIService permettant d'accéder à la bibliothèque
'des services
Set ObjWMIService = GetObject("winmgmts:\\" & NomPC & "\root\cimv2" )
'J'instancie la variable ObjProcess permettant de connaitre les infos sur le processeur
Set ObjProcess = objWMIService.Get("win32_Processor='CPU0'" )
'La variable TypeOS récupère le type d'architecture du processeur (x86 ou x64)
TypeOS=ObjProcess.AddressWidth
'J'instancie la variable VarCmd par l'objet Shell
Set VarCmd = WScript.CreateObject( "WScript.Shell" )
'J'instancie la variable VarCmd par l'objet FileSystemObject
Set ObjFSO = CreateObject("Scripting.FileSystemObject" )
'Nom de l'imprimante
NomIMP = Inputbox("Merci de saisir le nom de l'imprimante","SAISIE NOM IMPRIMANTE","PRTXX" )
'Nom du site'
NomSite = Inputbox("Merci de saisir le nom du site","SAISIE NOM SITE","XX" )
'Chemin des drivers de l'imprimante
Chemin = ObjFSO.GetParentFolderName(Wscript.ScriptFullName)&"\"
'TIMEOUT va me permettre de limiter l'affichage pop-up d'information de
Const TIMEOUT = 3
REM -----------------Début du Script-----------------
If TypeOS = "64" Then
VarCmd.Run "C:\Windows\SysWOW64\PRINTUI.EXE /Sr /n " & Chr(34) & NomIMP & Chr(34) & " /a " &_
Chr(34) & Chemin & NomSite &".dat" & Chr(34) & " m c",,TRUE
Else
VarCmd.Run "RUNDLL32 PRINTUI.DLL,PrintUIEntry /Sr /n " & Chr(34) & NomIMP & Chr(34) & " /a " &_
Chr(34) & Chemin & NomSite &".dat" & Chr(34),,TRUE
End If
En gros, si je laisse la commande comme ceci : "RUNDLL32 PRINTUI.DLL,PrintUIEntry' j'ai une erreur sous Win 7 64. Car il va chercher le programme dans system32 ou lieu SysWOW64.
Un peu quand tu compiles un script Autoit qui te demande si tu veux compiler en 32 ou 64 bits.
Mais si c'est pas possible, je laisserai tel quel.
Marsh Posté le 10-06-2013 à 16:08:51
Bonjour à tous,
Je rencontre le problème suivant :
Lorsque je double clique sur mon script VBS, qui execute la commande suivante : VarCmd.Run "PRINTUI.EXE /Sr /n " & """" & NomIMP & """" & " /a " &_
"""" & Chemin & NomSite & "_"& TypeOS &".dat"& """",,TRUE
J'ai une erreur "impossible de terminer cette opération (erreur 0x0000000c".
En revanche, si je passe par Notepad++ (paramétré pour lancer les scripts VBS directement via l'application), je n'ai pas d'erreur.
Le script se lance bien sur un poste XP mais plante sur mon Windows 7 64bit.
J'ai tenté de passer par "cmd" en mode Administrateur mais j'ai la même erreur.
Avez-vous une idée?
Merci d'avance pour votre aide.
Message édité par roloulou63 le 10-06-2013 à 20:57:38