Fermer une application quand une autre se ferme ?? Need help

Fermer une application quand une autre se ferme ?? Need help - Shell/Batch - Programmation

Marsh Posté le 16-07-2016 à 00:01:09    

Bonjour,
 
Je cherche a faire un fichier .bat qui doit:
 
-Ouvrir le jeu street fighter 5
-Ouvrir l'utilitaire de madcatz pour reconnaitre le stick dans le jeu
 
A la fermeture du jeu street fighter 5
-Fermer l'utilitaire de madcatz
 
Mon code donne ça:

Code :
  1. @echo off
  2. StreetFighterV.url
  3. Fight_Stick_TES_Profiler.exe
  4. tasklist /FI "StreetFighterV.exe" 2>NUL | find /I /N "StreetFighterV" >NUL
  5. if %ERRORLEVEL% == 1 goto mycode
  6. :mycode
  7. taskkill /IM Fight_Stick_TES_Profiler.exe


 
Mais quand je lance le .bat, le jeu et l'utilitaire s’exécute bien, mais quand je ferme le jeu, il ne ferme pas l'utilitaire. Par contre si je relance le .bat, il me ferme l'utilitaire et me lance le jeu sans du coup  :kaola:  
 
Comment modifier ça pour obtenir ce que je veux svp ?
 
Merci d'avance :)


Message édité par link93300 le 16-07-2016 à 00:36:14
Reply

Marsh Posté le 16-07-2016 à 00:01:09   

Reply

Marsh Posté le 16-07-2016 à 01:41:28    

À mon avis faudrait un truc genre

Code :
  1. @echo off
  2. StreetFighterV.url
  3. Fight_Stick_TES_Profiler.exe
  4. DEBUT:
  5. tasklist /FI "StreetFighterV.exe" 2>NUL | find /I /N "StreetFighterV" >NUL
  6. if %ERRORLEVEL% == 1 goto mycode
  7. SINON { ATTENDRE 1S, GOTO DEBUT }
  8. :mycode
  9. taskkill /IM Fight_Stick_TES_Profiler.exe


C'est bien sûr du pseudo-code, je n'ai pas envie de m'emmerder à cette heure ci  :o et puis j'ai pas tasklist. Le problème de ton code initial c'est que peu importe si le jeu est lancé ou pas il va exécuter :mycode directement puis terminer le batch. Il faut donc une boucle comme dans mon exemple. Le ATTENDRE 1S sert à limiter la charge du processeur. À toi de traduire en batch, je conseille vivement de virer le echo off pour les tests!

Reply

Marsh Posté le 16-07-2016 à 13:11:12    

J'ai trouvé, j'ai testé la liste dans cmd directement voir ce que donne le %errorlevel%, je laissais pas assez de temps pour qu'il détecte le .exe du jeu, le tasklist était mal écrit et il manquait aussi la boucle comme tu disais ^^
 
Ça donne ça:

Code :
  1. @echo off
  2. c:
  3. cd C:\Program Files\Mad Catz\Fight Stick TES\
  4. start Fight_Stick_TES_Profiler.exe
  5. start steam://rungameid/310950
  6. timeout /t 15 /nobreak > NUL
  7. :loop
  8. tasklist /FI "IMAGENAME eq StreetFighterV.exe" 2>NUL | find /I /N "StreetFighterV.exe">NUL
  9. if %ERRORLEVEL% == 0 (
  10. timeout /t 1 /nobreak > NUL
  11. goto loop )
  12. taskkill /IM Fight_Stick_TES_Profiler.exe


Message édité par link93300 le 16-07-2016 à 13:19:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed