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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  kill un processus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

kill un processus

n°2227578
P'tit Serp​ent
Je ne mords pas :)
Posté le 08-05-2014 à 11:37:31  profilanswer
 

Bonjour,
Alors voilà, j'aimerais couper uTorrent lorsque je joue à un jeu en ligne (ici, League of Legends) car il bouffe ma bande passante.
Mais étant une feignasse  :D , je ne veux pas avoir à cliquer sur l'icône utorrent pour le quitter totalement, ou encore passer par le gestionnaire des tâche. Je ne pense pas forcément à l'éteindre.
Donc je me suis mis en tête de créer un script batch qui pourrait le faire à ma place.
 
Alors j'ai fais ça :  

Code :
  1. @echo off
  2. cd
  3. cd "chemin_vers_le_dossier_du_jeu"
  4. start lol.launcher.exe
  5. tskill uTorrent
  6. exit


 
Mais voilà, ça ne fonctionne pas et je ne comprends pas pourquoi, j'ai testé avec tskill et taskkil avec plein de syntaxe différente mais rien n'y fait.
Comment faire ?  
 
PS : je suis sous Windows 7


---------------
Poupi Poupi Poupipou
mood
Publicité
Posté le 08-05-2014 à 11:37:31  profilanswer
 

n°2227580
theshockwa​ve
I work at a firm named Koslow
Posté le 08-05-2014 à 15:03:48  profilanswer
 

tasklist te permet de lister les process qui tournent sur ta machine. Tu noteras que c'est le nom complet de l'exécutable qui est utilisé, donc plus probablement uTorrent.exe que simplement uTorrent


Message édité par theshockwave le 08-05-2014 à 15:04:01

---------------
last.fm
n°2227608
breizhbugs
Posté le 08-05-2014 à 22:14:55  profilanswer
 

Bonsoir,
Si le tskill est trop violent (fichier corrompu ou ce genre de chose) voyez https://code.google.com/p/cutorrent/ peut être...


Message édité par breizhbugs le 08-05-2014 à 22:15:41

---------------
Seul Google le sait...
n°2227627
P'tit Serp​ent
Je ne mords pas :)
Posté le 09-05-2014 à 11:54:07  profilanswer
 

Bon j'ai fait autrement, j'ai installer la suite PSTools pour avoir le pskill et maintenant ça fonctionne parfaitement.
 
J'aimerais complexifier la chose un peu maintenant. le processus "LolLaucher.exe" reste allumé tant que le jeu est en fonction. Avec cette info, j'aimerais que le script rallume utorrent automatiquement dès que LolLauncher.exe est absent des processus.
 
En clair, je veux que mon script fasse :
- Lorsque LoL s'ouvre, utorrent s'éteint [:yann39]
- Lorsque LoL se ferme, utorrent se rallume [:judgedredd:2]
 
Donc je pense qu'il faut une boucle où le script attendra, mais il ne faut pas que la boucle bouffe des ressources CPU pour rien ^^'.
 
Auriez-vous une idée ?
[:antoine81]  


---------------
Poupi Poupi Poupipou
n°2227632
honrisse
Posté le 09-05-2014 à 15:34:16  profilanswer
 

P'tit Serpent a écrit :

Bon j'ai fait autrement, j'ai installer la suite PSTools pour avoir le pskill et maintenant ça fonctionne parfaitement.
 
J'aimerais complexifier la chose un peu maintenant. le processus "LolLaucher.exe" reste allumé tant que le jeu est en fonction. Avec cette info, j'aimerais que le script rallume utorrent automatiquement dès que LolLauncher.exe est absent des processus.
 
En clair, je veux que mon script fasse :
- Lorsque LoL s'ouvre, utorrent s'éteint [:yann39]
- Lorsque LoL se ferme, utorrent se rallume [:judgedredd:2]
 
Donc je pense qu'il faut une boucle où le script attendra, mais il ne faut pas que la boucle bouffe des ressources CPU pour rien ^^'.
 
Auriez-vous une idée ?
[:antoine81]  


 
Voila le code que j'ai bidouillé :


Code :
  1. @echo off
  2. start notepad++
  3. taskkill /IM notepad.exe
  4. :loop-in-batch
  5. tasklist /fi "imagename eq notepad++.exe" | find ":" > nul
  6. if errorlevel 1 (
  7. REM wait 1s
  8. ping 192.0.2.2 -n 1 -w 1000 > nul
  9. goto loop-in-batch
  10. ) else (
  11. start notepad
  12. )
  13. pause


Message édité par honrisse le 09-05-2014 à 15:38:45
n°2227643
P'tit Serp​ent
Je ne mords pas :)
Posté le 09-05-2014 à 17:21:16  profilanswer
 

Merci pour ta réponse, mais j'ai réussi à me créer mon script seul ^^'
Pour ceux que ça intéresse :

Code :
  1. @echo off
  2. FOR /F "eol=; delims=," %%a IN (starter.cfg) DO set uTorrent_path=%%a
  3. start lol.launcher.exe
  4. tasklist /FI "IMAGENAME eq uTorrent.exe" 2>NUL | find /I /N "uTorrent.exe">NUL
  5. if "%ERRORLEVEL%"=="0" taskkill /f /im uTorrent.exe
  6. if not "%ERRORLEVEL%"=="0" echo uTorrent n'est pas actif.
  7. timeout 30 /nobreak
  8. :loop
  9. tasklist /FI "IMAGENAME eq LoLLauncher.exe" 2>NUL | find /I /N "LoLLauncher.exe">NUL
  10. if "%ERRORLEVEL%"=="0" timeout 5 & goto loop
  11. tasklist /FI "IMAGENAME eq uTorrent.exe" 2>NUL | find /I /N "uTorrent.exe">NUL
  12. if "%ERRORLEVEL%"=="0" taskkill /im uTorrent.exe
  13. if not "%ERRORLEVEL%"=="0" cd /d %uTorrent_path% & start uTorrent.exe & timeout 1 & goto loop


 
 
Le fichier starter.cfg ne contient que le chemin d'accès vers uTorrent, comme ça je peux donner mon script à mes potes sans qu'il n'ai a rentrer dans le code (surtout que ce sera un .exe)  :)
Je suis en train de l'améliorer, si vous avez des suggestions ou des remarques je suis toujours preneur :D


---------------
Poupi Poupi Poupipou
n°2227653
honrisse
Posté le 09-05-2014 à 18:39:14  profilanswer
 

P'tit Serpent a écrit :

Merci pour ta réponse, mais j'ai réussi à me créer mon script seul ^^'
Pour ceux que ça intéresse :

Code :
  1. @echo off
  2. FOR /F "eol=; delims=," %%a IN (starter.cfg) DO set uTorrent_path=%%a
  3. start lol.launcher.exe
  4. tasklist /FI "IMAGENAME eq uTorrent.exe" 2>NUL | find /I /N "uTorrent.exe">NUL
  5. if "%ERRORLEVEL%"=="0" taskkill /f /im uTorrent.exe
  6. if not "%ERRORLEVEL%"=="0" echo uTorrent n'est pas actif.
  7. timeout 30 /nobreak
  8. :loop
  9. tasklist /FI "IMAGENAME eq LoLLauncher.exe" 2>NUL | find /I /N "LoLLauncher.exe">NUL
  10. if "%ERRORLEVEL%"=="0" timeout 5 & goto loop
  11. tasklist /FI "IMAGENAME eq uTorrent.exe" 2>NUL | find /I /N "uTorrent.exe">NUL
  12. if "%ERRORLEVEL%"=="0" taskkill /im uTorrent.exe
  13. if not "%ERRORLEVEL%"=="0" cd /d %uTorrent_path% & start uTorrent.exe & timeout 1 & goto loop


 
 
Le fichier starter.cfg ne contient que le chemin d'accès vers uTorrent, comme ça je peux donner mon script à mes potes sans qu'il n'ai a rentrer dans le code (surtout que ce sera un .exe)  :)
Je suis en train de l'améliorer, si vous avez des suggestions ou des remarques je suis toujours preneur :D


 
Ca change pas grand chose mais on peut remplacer if / if not par if / else je pense.
 
 :??:

Code :
  1. :loop
  2. tasklist /FI "IMAGENAME eq LoLLauncher.exe" 2>NUL | find /I /N "LoLLauncher.exe">NUL
  3. if "%ERRORLEVEL%"=="0" timeout 5 & goto loop
  4. tasklist /FI "IMAGENAME eq uTorrent.exe" 2>NUL | find /I /N "uTorrent.exe">NUL
  5. if "%ERRORLEVEL%"=="0" taskkill /im uTorrent.exe
  6. if not "%ERRORLEVEL%"=="0" cd /d %uTorrent_path% & start uTorrent.exe & timeout 1 & goto loop


 
Je suis peut être fatigué mais si  je ne me trompe pas, on a :

  • si le processus LoLLauncher.exe n'existe pas, on vérifie si uTorrent.exe existe
  • si uTorrent.exe n'existe pas, on le lance, on loope, on vérifie LoLLauncher et si uTorrent.exe existe on le ferme et on quitte ?  :??:  

n°2227654
P'tit Serp​ent
Je ne mords pas :)
Posté le 09-05-2014 à 18:54:12  profilanswer
 

  • Si le launcher existe, alors on attend et on retente dans 5sec
  • Si le launcher n'existe pas, on test si uTorrent est allumé (pour éviter des doublons si on l'a allumer durant le jeu)
  • Si uTorrent est allumé, on le réduit
  • Si uTorrent est absent, alors on reteste si launcher est là, puis on allume uTorrent et on le réduit


En fait c'est pour réduire les lignes de codes, retester les premieres lignes ne change pas grand chose lorsqu'on est arrivé a la ligne 6.
C'est juste pour éviter d'avoir deux boucles loop1 et loop2 ^^'
 
 
PS: chez moi le else n'est pas reconnu donc j'ai fais sans :D


Message édité par P'tit Serpent le 09-05-2014 à 18:54:46

---------------
Poupi Poupi Poupipou
n°2227663
Mackila
Posté le 09-05-2014 à 20:33:54  profilanswer
 

taskkill /IM utorrent.exe /F
start /WAIT lol.launcher.exe
start utorrent.exe


 
 :??:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  kill un processus

 

Sujets relatifs
[VB] Comment kill processus dans un endroit précis.processus / minishell
attendre fin d'un processus[Résolu] [Oracle] Conflit de processus d'ecoute
FileSystem.Kill[VBS] Kill processus courant sous windows XP
[VB] commande shell et kill de processusKill des processus
[VC] Kill un processusSQL Server Kill un processus
Plus de sujets relatifs à : kill un processus


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