Lancer des raccourcis dans un batch ... ?

Fermé
kawapoulpe - 22 sept. 2010 à 19:23
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 - 30 sept. 2010 à 13:11
Bonjour,

Bonjour,
J'ai des petits soucis en batch pour lancer 2 applications virtuelles successivement ...

Présentation :
Windows 7 Pro, un virtual PC en XP mode, 2 applications dans cette machine virtuelle.

Description :
La première application fait plein de choses ...
La deuxième permet d'effectuer la sauvegarde de ce qui a été fait dans la première

Environnement :
Besoin d'être géré par un Utilisateur neuneu au cas où ... (nan, c'est pas moi ! quoique ...)

Utilisation manuelle :
Les raccourcis vers les applications du XP mode ont été créés dans le menu de windows 7 (dans virtual pc, xp mode applications) et copiés sur le bureau de windows 7.
L'utilisateur doit cliquer sur le premier raccourci pour utiliser l'application, puis, lorsqu'il a terminé, sur le 2ème pour faire la sauvegarde .

Problème :
Je les connais ces utilisateurs, ils ne vont jamais cliquer sur le 2ème !!!! :(((

But recherché :
Lancer le 2ème (la sauvegarde) automatiquement lorsque l'application virtuelle est terminée.

Solution :
Création d'un batch qui lance tour à tour (successivement !!) les deux applications XP mode (ce qui doit donc lancer 2 fois la virtual machine en arrière plan, invisible pour l'utilisateur).
(le lancement lui-même de l'application fonctionne à merveille !)

Problème rencontré :
Impossible de faire attendre le batch pour qu'il ne lance la deuxième application qu'après être sorti de la 1ère !!! Il me lance les deux à la fois !

Essais :
contenu du batch :
start /B /WAIT "premier" "C:\Users\user1\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Virtual PC\Windows XP Mode applications\application (Windows XP Mode)"
start /B /WAIT "second" "C:\Users\user1\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Virtual PC\Windows XP Mode applications\sauvegarde (Windows XP Mode)"

==> malgré le "/WAIT", les deux applications virtuelles se lancent simultanément !


Est-ce que quelqu'un aurait une solution pour faire attendre le batch, svp ??

Merci d'avance


Kawapoulpe
A voir également:

6 réponses

!! vulcan Messages postés 2119 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 20 février 2015 182
22 sept. 2010 à 19:29
Salut,

Voir cet échange, en particulier l'intervention de Jeff : https://forums.commentcamarche.net/forum/affich-2047032-faire-une-attente-sous-dos-batch
0
Merci pour la réponse, mais ça ne correspond pas à mon besoin (j'y avais déjà pensé).
Ce système permet d'attendre un temps déterminé.

Or, j'ai besoin d'attendre un temps indéterminé, car je ne sais pas à l'avance combien de temps l'utilisateur va utiliser la première application.
C'est bien pour cela que je dois attendre la fin de cette application.

J'avais bien pensé à autre chose aussi, mais ce n'est pas applicable :
Attendre quelques secondes, puis faire une boucle qui surveille le processus de la première application pour lancer la deuxième dès que le premier a disparu...
Mais je ne vois que les processus hôte virtual pc" et "lanceur d'application virtual pc", et ils ne se terminent pas quand la première application est fermée ...
(en fait, si, mais trèèès longtemps après, donc inutilisable !)


merci quand même

KP
0
Bonjour,
Est-ce qqun a une autre idée, svp ?

Merci d'avance.

KP
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
26 sept. 2010 à 11:19
salut kawapoulpe

c'est normale que les deux applications se lancent en même temps ...???

pourquoi ? ... parce que vous avez ajouté un START avant le programme ;)

enlevez le START et me dire que le programme est parfaitement lancable =)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui bien sûr ...
Sauf que c'est de là que j'étais parti quand même ...
Si je fais ça, les deux se lancent en même temps !!!!

C'est pourquoi j'avais tenté avec le "start /wait", mais ça ne fonctionne pas mieux.

Au final, je crois qu'il n'y a aucun moyen de faire attendre la fin du premier avant de lancer le deuxième.

Ce qui marche dans un cas standard ne fonctionne pas ici car ce n'est pas une application "normale" que je lance, mais une application DANS une machine virtuelle ... et ça change vraisemblablement tout !

Merci quand même

Cordialement.

KP
0
J'ai trouvé !!!!

J'suis bête, mais j'aurai dû y penser plus tôt !!!!

En fait, c'est tout simple !

Le principe du batch de base (sans call ni start) est d'exécuter les commandes de manières séquentielle. Si une commande ne rend pas la main, le batch attend automatiquement son retour.

Mais ça ne fonctionne pas si les applications lancées sont en fait incluses dans une machine virtuelle (la preuve ici même)....

C'est en écrivant ma précédente réponse que j'ai pensé à la solution.

En fait, il suffit de faire le batch directement DANS la machine virtuelle et non pas dans le windows 7 !!!

J'ai donc créé le batch qui lance mes deux programmes (normalement ! ) dans la machine virtuelle et j'ai créé un raccourci dans son menu démarrer, ce qui a provoqué la création automatique du raccourci dans le menu de windows 7 et ensuite, il n'y a plus qu'à le lancer depuis windows 7.

Et ça marche parfaitement !!

Il me restait un détail à régler (qui n'était pas dans le sujet de ce post), c'était de cacher la fenêtre dos...
La solution habituelle de mettre une taille 1x1 ou une position hors affichage sur le raccourci fonctionne parfaitement en local, mais pas en mode virtuel.
Je suis donc passé par un script vbs (dans la machine virtuelle) qui appelle mes deux applications l'une après l'autre tout en cachant la fenêtre d'appel. Ensuite, comme avant, un raccourci dans le menu démarrer de la machine virtuelle ce qui donne le bon raccourci dans mon windows 7 !

Et voilà, ça fonctionne bien, tout est invisible et lorsque je quitte mon appli, la sauvegarde se lance tout de suite après !


c'est parfait !

si quelqu'un veut des informations supplémentaires, n'hésitez pas à me le demander (par mp, mail ou ici).


Et merci pour vote aide, car même si vous n'avez pas trouvé, vous m'avez beaucoup aidé dans mes réflexions et je n'aurai pas trouvé sans vous !!!

KP
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
30 sept. 2010 à 13:11
Re,

cherchez la solution comme suit :

for /F "delims= ........etc" %%g in ( 'TASKLIST /FI "USERNAME ne AUTORITE NT\SYSTEM" /FI "STATUS eq running"') do @(
votre code
)

ou qqc comme :

for /F "delims= ........etc" %%h in ( 'TASKLIST /FI "USERNAME ne AUTORITE NT\SYSTEM" /FI "') do @(
votre code
)

essayez l'un des deux avec l'ajout du variable ( %%g ou %%h ) et me dire quel nouveau .
0