[VBS] Script en pause pendant execution DOS
Résolu
xav3601
Messages postés
3289
Date d'inscription
Statut
Membre
Dernière intervention
-
xav3601 Messages postés 3289 Date d'inscription Statut Membre Dernière intervention -
xav3601 Messages postés 3289 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais mettre l'execution de mon script VBS en pause pendant la durée d'execution d'une commande DOS.
Merci pour vos réponse
Je souhaiterais mettre l'execution de mon script VBS en pause pendant la durée d'execution d'une commande DOS.
Merci pour vos réponse
A voir également:
- Vbs pause
- Vbs windows - Accueil - Optimisation
- Imprimante en pause hp ✓ - Forum Imprimante
- Imprimante bloquée sur pause ✓ - Forum Imprimante
- Facebook rencontre bug une pause s'impose - Forum Facebook
- Imprimante en pause ✓ - Forum Imprimante
13 réponses
Je viens de regarder un vieux script chez moi, où j'avais eu le même problème.
Essaie voir de mettre
Essaie voir de mettre
oShell.run strCommande,2,Truesans toucher à rien (avec ta commande d'origine).
Voila ma ligne de commande :
Shell "pingpong.bat", vbHide
avec le start /wait devant ca ne marche pas non plus :/
Shell "pingpong.bat", vbHide
avec le start /wait devant ca ne marche pas non plus :/
Merci de ta reponse d'abord!
concernant mon code je lance la commande de cette maniere:
set oShell = CreateObject("WScript.Shell")
oShell.run strCommande
A quelle endroit dois je inserer le /wait pour effectuer le test?
merci
concernant mon code je lance la commande de cette maniere:
set oShell = CreateObject("WScript.Shell")
oShell.run strCommande
A quelle endroit dois je inserer le /wait pour effectuer le test?
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Erreur:le fichier spécifié est introuvable
Code: 80070002
Voila l'erreur au moment de lancer la commande
Code: 80070002
Voila l'erreur au moment de lancer la commande
J'essaye de suite mais en effet ca devrais marcher!
puisque c'est l'attribut true qui va faire attendre je viens de le voir sur un autre site :)
en tout cas merci pour tes reponses ;)
Edit:
Ca marche!
j'ai juste remplacé le 2 par un 1 pour avoir la fenetre a l'ecran car je dois y taper un mdp dedans.
Merci beaucoup.
puisque c'est l'attribut true qui va faire attendre je viens de le voir sur un autre site :)
en tout cas merci pour tes reponses ;)
Edit:
Ca marche!
j'ai juste remplacé le 2 par un 1 pour avoir la fenetre a l'ecran car je dois y taper un mdp dedans.
Merci beaucoup.
Ca marche tres bien avec le vbs!donc je profite pr poser la meme question avec le vba :)
Mais avec le vba la sytaxe n'est pas tout a fais la même:
shell "commande",vbHide
En mettant juste un true apres ca ne marche pas dans ce cas la :/
Mais avec le vba la sytaxe n'est pas tout a fais la même:
shell "commande",vbHide
En mettant juste un true apres ca ne marche pas dans ce cas la :/
C'est normal, vbs et vba ne sont pas identiques (et de loin !).
La fonction shell lance une commande et renvoie l'identifiant utilisé par le système pour gérer son exécution, c'est tout.
Il faut dans ce cas, savoir quelle commande tu veux lancer (DOS ou win32), pour savoir comment le faire si on veut une attente.
La fonction shell lance une commande et renvoie l'identifiant utilisé par le système pour gérer son exécution, c'est tout.
Il faut dans ce cas, savoir quelle commande tu veux lancer (DOS ou win32), pour savoir comment le faire si on veut une attente.
ma fonction shell fais appel a un batch :/
d'ou ma difficulte :)
pour l'instant j'ai juste mis une pause dans la macro a l'aide d'un sleep mais bon c'est pas tres propre
d'ou ma difficulte :)
pour l'instant j'ai juste mis une pause dans la macro a l'aide d'un sleep mais bon c'est pas tres propre
lol j'ai la bonne habitude de ne jamais regarder les erreurs et d'avoir la flemme de retourner les chercher...
je tape:
shell "start /wait pingpong.bat",vbHide
et plus precisement j'ai une erreur a la compilation fichier introuvable
je tape:
shell "start /wait pingpong.bat",vbHide
et plus precisement j'ai une erreur a la compilation fichier introuvable
Voui, c'est normal, un .bat est exécuté via l'interpréteur de commande cmd (ou command.com pour les anciennes versions).
Je te propose ça :
Mais comme la commande est lancée en asynchrone, VBA exécutera la commande suivante avant que le dir ne soit terminé, il faut donc tester si la commande dir est encore en machine, pour cela, on essaie de l'activer avec la commande appactivate et son numéro de lancement, nommé R.
Tant qu'on a pas d'erreur, c'est qu'elle active, quand on a une erreur (on ne peut pas activer la fenêtre), c'est que c'est fini (mais on ne sait pas comment : ok ou en erreur).
Ca irait ?
Je te propose ça :
Dim R As Double Dim Str As String Str = "cmd /C " + Chr(34) + "dir /s c:" + Chr(34) R = Shell(Str, 6) MsgBox R While True On Error GoTo Fin: AppActivate R Wend Fin: MsgBox "fini"En gros, ça lance la commande dir via l'interpréteur de commande cmd, dès que la commande est finie on ferme la fenêtre (paramètre /C de cmd).
Mais comme la commande est lancée en asynchrone, VBA exécutera la commande suivante avant que le dir ne soit terminé, il faut donc tester si la commande dir est encore en machine, pour cela, on essaie de l'activer avec la commande appactivate et son numéro de lancement, nommé R.
Tant qu'on a pas d'erreur, c'est qu'elle active, quand on a une erreur (on ne peut pas activer la fenêtre), c'est que c'est fini (mais on ne sait pas comment : ok ou en erreur).
Ca irait ?