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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pause durant l'éxecution d'un MSI...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pause durant l'éxecution d'un MSI...

n°1402806
silvano
Posté le 08-07-2006 à 10:47:45  profilanswer
 

Bonjour,
 
Je viens de terminer un script en VBScript qui aura pour but le déploiement par MSI d'une application. Je souhaiterais l'améliorer  :)  
 
Lorsque le MSI se lance je dois attendre la fin de son éxecution avant de poursuivre le script.
 
Pour l'instant j'utilise simplement la fonction :
Wscript.sleep 30000
Mais cela n'est pas satisfaisant car d'un ordinateur à un autre le temps d'éxecution du MSI sera différent.
 
Je souhaiterais donc faire une pause durant l'éxecution du MSI et reprendre juste après.
 
Je pense procéder de cette manière :
Test toutes les secondes pour savoir si le process "msiexec.exe" est en cours

  • Si oui, le test s'effectue à nouveau
  • Si non, le script se poursuit


Est que je dois travailler dans cette direction ou bien est-il possible d'écrire :

  • Faire une pause
  • Lorsque le proccess "msiexec.exe" se termine alors passer à la suite du script


Quelle solution vous choisiriez ?
 
Passez une excellente journée  :hello:

mood
Publicité
Posté le 08-07-2006 à 10:47:45  profilanswer
 

n°1402843
jpcheck
Pioupiou
Posté le 08-07-2006 à 12:14:57  profilanswer
 

si tu sais gérer le fait de connaitre l'état d'activité d'un programme, je te conseil de faire une boucle while avec un pause dedans =)

n°1402851
silvano
Posté le 08-07-2006 à 12:27:08  profilanswer
 

jpcheck a écrit :

si tu sais gérer le fait de connaitre l'état d'activité d'un programme


Je ne sais pas faire mais je vais apprendre  :)
 
Merci du conseil, je vais donc travailler avec une boucle while et une pause...
 
Je reviens dés que ce que ça fonctionne ;)  
 

n°1402979
silvano
Posté le 08-07-2006 à 18:22:06  profilanswer
 

Voilà ce que j'ai trouvé  :)  

Citation :


Début du script qui lance le MSI
 
Partie du script qui fait une pause lors de l'éxecution du MSI
--------------------------------------------------------------------
Dim MSI
Set Otest = GetObject("WinMgmts:{impersonationLevel=impersonate}" )
 
Wscript.sleep 2000
 
While MSI <> 1
 
   Wscript.sleep 1000
   MSI = 0
   Set test=Otest.ExecQuery("Select * from Win32_Process" )
 
      For Each valeur In test  
         if valeur.name = "msiexec.exe" then
         MSI = MSI + 1
         end if
      Next
 
Wend
--------------------------------------------------------------------
Poursuite du script...


 
 
Simplement une chose...
On peut s'apercevoir que la partie de la boucle While tourne tant que MSI est <> de 1. Au début j'avais mis 0 mais ça ne marchait pas...
Effectivement, lors de l'éxecution du MSI, msiexec.exe est lancé deux fois dans les processus :

  • une fois par l'utilisateur (qui lance le script)
  • une deuxième fois par le System

A la fin de l'éxecution du MSI, le msiexec.exe lancé par l'utilisateur se ferme automatiquement mais celui du System reste actif. D'ou le 1 dans la boucle while...
 
Est-ce normal que System ne ferme pas le msiexec.exe qu'il a ouvert ? Il reste en mémoire mais n'est plus utilisé par le processeur...
 
Merci à jpcheck pour l'aide apportée ci-dessus.  ;)


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

  Pause durant l'éxecution d'un MSI...

 

Sujets relatifs
Lancer un MSI par VBScript en mode silencieux...Textbox : Erreur d'execution 91
[résolu] Non exécution d'un fichier batchPause en attendant une action
Exécution procédure stockée sur Sybase en Java[resolu]Pause
execution programme pythonErreur d'exécution '13': incompatibilité de type
Problème d'execution Java3DExecution d'un script à distance : linux -> winXP
Plus de sujets relatifs à : Pause durant l'éxecution d'un MSI...


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