Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2680 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] Erreur lancement script VBS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS] Erreur lancement script VBS

n°2193566
roloulou63
L'art d'être autodidacte...
Posté le 10-06-2013 à 16:08:51  profilanswer
 

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
mood
Publicité
Posté le 10-06-2013 à 16:08:51  profilanswer
 

n°2193567
roloulou63
L'art d'être autodidacte...
Posté le 10-06-2013 à 16:15:09  profilanswer
 

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?


Message édité par roloulou63 le 10-06-2013 à 16:18:50
n°2193581
Marc L
Posté le 10-06-2013 à 17:33:35  profilanswer
 

 
           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 !
 

n°2193654
roloulou63
L'art d'être autodidacte...
Posté le 10-06-2013 à 20:54:28  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] Erreur lancement script VBS

 

Sujets relatifs
Script Telnet switcht Nortel/Avayacréer un script .bat
Script erroné en passant au php5.4[VBS] Modification paramètre imprimante
Délimiteur en VBSerreur de segmentation sur matrice
Script d'activation de scriptScript d'automatisation de tache
[HTML/CSS/Javascript] Lien et script à partir de l'attribut altErreur au lancement à distance script VBS
Plus de sujets relatifs à : [VBS] Erreur lancement script VBS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR