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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  des taskkill en cascade, pour un noob

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

des taskkill en cascade, pour un noob

n°1002839
gregC
Posté le 06-03-2005 à 20:39:35  profilanswer
 

Sujet également posté sur ppc
Bonjour à tous, vous avez peut être le même problème que moi concernant le systray sous xp (pro).
Quand l'explorer plante, et qu'il redémarre dans la foulée, ou que je le tue parfois moi même pour, par exemple, effacer un dossier ou un fichier récalcitrant, il y a toute une partie des icones du systray qui ont disparues.  :cry:  
j'ai pris l'habitude d'ouvrir process Explorer( qui a depuis longtemps remplacé le gestionnaire des taches chez moi) et de tuer/redémarrer chaque application qui posait problème.
 :sweat:  
ça fait longtemps que je cherchait un moyen d'automatiser ou de "semi-automatiser" cette tache, voici mon batch :
 

Code :
  1. taskkill /f /im SuperCopier.exe
  2. @ cd C:\Program Files\SuperCopier
  3. @ SuperCopier.exe
  4. taskkill /f /im PrintScreen.exe
  5. @ cd C:\Program Files\Gadwin Systems\PrintScreen
  6. @ PrintScreen.exe
  7. taskkill /f /im ClipTray.exe
  8. @ cd C:\Program Files\ClipTray
  9. @ ClipTray.exe
  10. taskkill /f /im KlipFolio.exe
  11. @ cd C:\Program Files\KlipFolio
  12. @ KlipFolio.exe
  13. taskkill /f /im ATnotes.exe
  14. @ cd C:\Program Files\ATnotes
  15. @ ATnotes.exe
  16. taskkill /f /im mixer
  17. @ cd C:\WINDOWS
  18. @ mixer.exe
  19. pause
  20. exit


vous avez en prime les applications qui posent problèmes dans mon systray.
 
Le problème désormais c'est que seule la premiere étape est exécutée, je pense que c'est une histoire de "focus", puisque la fenêtre cmd passe au second plan, et "gèle".
 
auriez vous une solution ?
quelle qu'elle soit ?
sachant que en batch ou vbs ou quoique ce soit d'autres, je suis une quiche.
à noter : la commande tskill me paraissait plus rapide, mais elle ne marche pas vraiment ?
à noter bis : j'ai télécharger pskill.exe, qui est vraiment rapide, mais j'avais le même problème, ne l'ayant pas identifé tout de suite, je suis passé a taskkill/tskill, mais je pourrais le réutiliser si vous m'apporter une aide sur ce problème de "focus".
 
merci de m'avoir lu.
Grégory.
 
ps: pas la peine de me faire remarquer que mon systray est encombré, je le sais, mais c'est une drogue !! :)


Message édité par gregC le 06-03-2005 à 20:43:47
mood
Publicité
Posté le 06-03-2005 à 20:39:35  profilanswer
 

n°1002872
gregC
Posté le 06-03-2005 à 20:53:31  profilanswer
 

j'améliore déjà un peu le code...
enfin je crois !

Code :
  1. taskkill /f /im SuperCopier.exe
  2. C:\progra~1\SuperCopier\SuperCopier.exe
  3. taskkill /f /im PrintScreen.exe
  4. C:\progra~1\Gadwin Systems\PrintScreen\PrintScreen.exe
  5. taskkill /f /im ClipTray.exe
  6. C:\progra~1\ClipTray\ClipTray.exe
  7. taskkill /f /im KlipFolio.exe
  8. C:\progra~1\KlipFolio\KlipFolio.exe
  9. taskkill /f /im ATnotes.exe
  10. C:\progra~1\ATnotes\ATnotes.exe
  11. taskkill /f /im mixer.exe
  12. C:\WINDOWS\mixer.exe
  13. rem pour voir ce qu'il c'est un peu passé :
  14. pause
  15. exit


Message édité par gregC le 06-03-2005 à 20:54:16
n°1003128
wackevat
Posté le 06-03-2005 à 23:10:02  profilanswer
 

Salut,
 
Ton batch va s'arrêter à la quatrième ligne puisque le chemin avec espace n'est pas quoté.
 
Tu peux essayer :
"C:\Program Files\Gadwin Systems\PrintScreen\PrintScreen.exe"

n°1003184
gregC
Posté le 07-03-2005 à 00:07:24  profilanswer
 

merci j'en ai profité pour tout quoter, hisotre de cohérnece.
mais ça n'a pas résolu mon problème, qui xistait de toute facon même avec la version du haut :  cd c:....etc.

n°1004332
wackevat
Posté le 08-03-2005 à 01:44:06  profilanswer
 

Et si tu ajoutais un start au début de chaque exe à lancer ?
 

Code :
  1. taskkill /f /im SuperCopier.exe
  2. start "C:\program files\SuperCopier\SuperCopier.exe"

n°1004368
gregC
Posté le 08-03-2005 à 08:24:17  profilanswer
 

Merci pour la suggestion.
Maintenant le programe suis son cours jusqu'au bout,
Mais à la place de lancer les programmes en question, le fait de rajouter [b]start[/] ouvre des invites de commandes ...
 
:/

n°1004833
wackevat
Posté le 08-03-2005 à 14:36:17  profilanswer
 

C'est étrange : je viens d'essayer. Ca ouvre effectivement une invite de commande mais celle-ci se ferme aussi tôt que le dernier exécutable est lancé.

n°1005573
gregC
Posté le 08-03-2005 à 16:30:48  profilanswer
 

avant le coup du start, j'ai vraiment eu l'impression que mon problème était lié au "focus" , comme si le batch stoppait dès qu'il y avait un autre programme passant en avant plan... ça a un quelconque sens pour toi ?

n°1005654
wackevat
Posté le 08-03-2005 à 17:00:52  profilanswer
 

Oui, justement en prenant compte de ça que j'ai proposé le start. Notre objectif est de regagner la main après que chaque programme est lancé.
 
J'ai testé avec 3 logiciels, dont un tu ne peux pas connaître (c'est spécifique de chez mon pays), mais les deux autres étaient SuperCopier et Volkey. Je n'avais qu'une seule fenêtre DOS qui s'est fermée à la fin.
 
Dans ton cas, le nombre de fenêtre est exactement celui de programmes à exécuter ?

n°1006459
gregC
Posté le 09-03-2005 à 10:33:03  profilanswer
 

désolé du retard et encore merci de s'interesser a ce problème.
voilà une capture d'écran après execution du batch, et le code du dit batch.
tout les programmes se sont bien arrétés, aucun n'a été redémarré.
http://img210.exs.cx/img210/5681/batchcmd6yk.th.png
 

Code :
  1. taskkill /f /im SuperCopier.exe
  2. start "C:\progra~1\SuperCopier\SuperCopier.exe"
  3. taskkill /f /im PrintScreen.exe
  4. start "C:\progra~1\Gadwin Systems\PrintScreen\PrintScreen.exe"
  5. taskkill /f /im ClipTray.exe
  6. start "C:\progra~1\ClipTray\ClipTray.exe"
  7. taskkill /f /im KlipFolio.exe
  8. start "C:\progra~1\KlipFolio\KlipFolio.exe"
  9. taskkill /f /im ATnotes.exe
  10. start "C:\progra~1\ATnotes\ATnotes.exe"
  11. taskkill /f /im mixer.exe
  12. start "C:\WINDOWS\mixer.exe"
  13. @ rem pour voir ce qu'il ce passe :
  14. pause
  15. exit


edit : nouvelles captures plus simple et précise


Message édité par gregC le 09-03-2005 à 10:52:29
mood
Publicité
Posté le 09-03-2005 à 10:33:03  profilanswer
 

n°1006718
KangOl
Profil : pointeur
Posté le 09-03-2005 à 13:23:05  profilanswer
 

essaye avec  

start /nowait "blah.exe"


 
:??:


---------------
Nos estans firs di nosse pitite patreye...
n°1006730
gregC
Posté le 09-03-2005 à 13:32:24  profilanswer
 

pas mieux :/

Code :
  1. C:\>taskkill /f /im SuperCopier.exe
  2. Opération réussie : le processus "SuperCopier.exe" de PID 11696 a été arrêté.
  3. C:\>start /nowait "C:\progra~1\SuperCopier\SuperCopier.exe"
  4. Option non valide - "/nowait".
  5. C:\>taskkill /f /im PrintScreen.exe
  6. Opération réussie : le processus "PrintScreen.exe" de PID 14036 a été arrêté.
  7. C:\>start /nowait "C:\progra~1\Gadwin Systems\PrintScreen\PrintScreen.exe"
  8. Option non valide - "/nowait".
  9. C:\>taskkill /f /im ClipTray.exe
  10. Opération réussie : le processus "ClipTray.exe" de PID 8720 a été arrêté.
  11. C:\>start /nowait "C:\progra~1\ClipTray\ClipTray.exe"
  12. Option non valide - "/nowait".
  13. C:\>taskkill /f /im KlipFolio.exe
  14. Opération réussie : le processus "KlipFolio.exe" de PID 3520 a été arrêté.
  15. C:\>start /nowait "C:\progra~1\KlipFolio\KlipFolio.exe"
  16. Option non valide - "/nowait".
  17. C:\>taskkill /f /im ATnotes.exe
  18. Opération réussie : le processus "ATnotes.exe" de PID 1308 a été arrêté.
  19. C:\>start /nowait "C:\progra~1\ATnotes\ATnotes.exe"
  20. Option non valide - "/nowait".
  21. C:\>taskkill /f /im mixer.exe
  22. Opération réussie : le processus "mixer.exe" de PID 12064 a été arrêté.
  23. C:\>start /nowait "C:\WINDOWS\mixer.exe"
  24. Option non valide - "/nowait".
  25. C:\>pause
  26. Appuyez sur une touche pour continuer...


 

n°1006734
KangOl
Profil : pointeur
Posté le 09-03-2005 à 13:34:59  profilanswer
 

c'est quoi ces c:\> ?


---------------
Nos estans firs di nosse pitite patreye...
n°1006737
gregC
Posté le 09-03-2005 à 13:37:01  profilanswer
 

c'est pas le code, c'est le résultat dans la fenetre cmd.
le code :

Code :
  1. taskkill /f /im SuperCopier.exe
  2. start /nowait "C:\progra~1\SuperCopier\SuperCopier.exe"
  3. taskkill /f /im PrintScreen.exe
  4. start /nowait "C:\progra~1\Gadwin Systems\PrintScreen\PrintScreen.exe"
  5. taskkill /f /im ClipTray.exe
  6. start /nowait "C:\progra~1\ClipTray\ClipTray.exe"
  7. taskkill /f /im KlipFolio.exe
  8. start /nowait "C:\progra~1\KlipFolio\KlipFolio.exe"
  9. taskkill /f /im ATnotes.exe
  10. start /nowait "C:\progra~1\ATnotes\ATnotes.exe"
  11. taskkill /f /im mixer.exe
  12. start /nowait "C:\WINDOWS\mixer.exe"
  13. @ rem pour voir ce qu'il ce passe :
  14. pause
  15. exit


edit : le batch killprocess.bat, est directement à la racine du DD C, ceci expliquant pê cela.


Message édité par gregC le 09-03-2005 à 13:38:06
n°1006838
wackevat
Posté le 09-03-2005 à 14:25:39  profilanswer
 

Une remarque : quand tu quotes le chemin, il sera interprété tel quel, alors si tu mets "C:\progra~1", l'exécutable ne sera pas trouvé.
Il faut opter soit pour le format 8.3 pour le chemin entier, soit quoter avec C:\Program Files.
Ce n'est pas forcément la cause du non fonctionnement, mais voilà..
Sinon, depuis l'invite de commande, si tu tapes :
start /?
effectivement, il n'y pas de switch /nowait (peut-être non documenté ?)

n°1006865
KangOl
Profil : pointeur
Posté le 09-03-2005 à 14:36:39  profilanswer
 

je sais plus ou j'avais lu ca !!
tanpis...


---------------
Nos estans firs di nosse pitite patreye...
n°1006909
gregC
Posté le 09-03-2005 à 14:58:26  profilanswer
 

bon, après quelques test :

Code :
  1. taskkill /f /im ClipTray.exe
  2. "C:\progra~1\ClipTray\ClipTray.exe"
  3. exit


ce .bat elimine le porcessus, redémarre le programme (il a l'air de le trouver à sa place avec "progra~1" ), mais  une fois le focus perdu (c'est toujours comme ça que je le comprend) l'EXIT n'est pas exécuté...
mais...merci nglechau de m'avoir rappelé qu'il existait une aide sous dos :)
en effet les quotes ne servent qu'a nommer la fenetres de commandes ?
le chemin est indiqué par un /D
en bref, voilà  mon batch, fonctionnel :D :

Code :
  1. taskkill /f /im SuperCopier.exe
  2. start /D C:\progra~1\SuperCopier\ /MIN SuperCopier.exe
  3. taskkill /f /im PrintScreen.exe
  4. start /D C:\progra~1\Gadwin~1\PrintScreen\ /MIN PrintScreen.exe
  5. taskkill /f /im ClipTray.exe
  6. start /D C:\progra~1\ClipTray\ /MIN ClipTray.exe
  7. taskkill /f /im KlipFolio.exe
  8. start /D C:\progra~1\KlipFolio\ /MIN KlipFolio.exe
  9. taskkill /f /im ATnotes.exe
  10. start /D C:\progra~1\ATnotes\ /MIN ATnotes.exe
  11. taskkill /f /im mixer.exe
  12. start /D C:\WINDOWS\ /MIN mixer.exe
  13. exit


edit : le /MIN ne marche que pour un seul programme (mixer), mais il ne gênes pas les autres.
 
Encore merci de vous être  penchés sur mon soucis.
mais vous ? vous n'avez pas ce problème de systray bégayant ??


Message édité par gregC le 09-03-2005 à 15:00:08
n°1006922
wackevat
Posté le 09-03-2005 à 15:09:29  profilanswer
 

Non, les quotes ne servent pas qu'à nommer les fenêtres ;)
Quand tu as plusieurs chemin par exemple :
C:\Program Files\Machin numero 1
C:\Program Files\Machin numero 2
C:\Program Files\Machin numero 3
etc.
Tu n'as pas forcément envie de faire des
C:\Progra~1\Machin~1
C:\Progra~1\Machin~2
C:\Progra~1\Machin~3
etc.
et de changer encore si tu ajoutes/supprimes des chemins de nom similaire.
Alors, plus simple, tu mets le chemin tel quel (nom long) par un copier/coller depuis Explorer, puis tu quotes.
Sinon, pour te répondre, si, ça m'arrive que explorer se plante et donc la disparition des icônes. Mais c'est si rarement que ça ne me dérange pas plus que ça ;)
Enfin, c'est cool que ça marche. Pourtant le mystère reste entière : pourquoi dans mes tests je n'avais pas besoin du /D mais un simple start sans argument me suffisait :)

n°1006935
gregC
Posté le 09-03-2005 à 15:17:39  profilanswer
 

tu es sous quel os ? xp pro familial, 2000 ? 98 ?
j'ai cru comprendre que certaine fonctions dos variaient d'un os à l'autre.
peut être que le start en fait partie.
voici  "mon" start /? :

Code :
  1. START ["titre"] [/D chemin] [/I] [/MIN] [/MAX] [SEPARATE]
  2.       [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
  3.       [/WAIT] [/B] [commande/programme]
  4.       [paramètres]
  5.   "titre"     Titre à afficher dans la barre de titre.
  6.   chemin      Répertoire de démarrage
  7.   B           Démarre l'application sans créer de nouvelle fenêtre.
  8.               L'application ignore les interruptions par ^C. A moins que
  9.               l'application ne le permette, ^Break est le seul moyen
  10.               d'interrompre l'application.
  11.   I           Le nouvel environnement sera l'environnement initial passé
  12.               à cmd.exe et non pas l'environnement en cours.
  13.   MIN         Démarre la fenêtre réduite en icône
  14.   MAX         Démarre la fenêtre en plein écran
  15.   SEPARATE    Démarre le programme Windows 16-bits en espace mémoire séparé
  16.   SHARED      Démarre le programme Windows 16-bits en espace mémoire partagé
  17.   LOW         Démarre l'application dans la classe de priorité IDLE
  18.   NORMAL      Démarre l'application dans la classe de priorité NORMAL
  19.   HIGH        Démarre l'application dans la classe de priorité HIGH
  20.   REALTIME    Démarre l'application dans la classe de priorité REALTIME
  21.   ABOVENORMAL Démarre l'application dans la classe de priorité ABOVENORMAL
  22.   BELOWNORMAL Démarre l'application dans la classe de priorité BELOWNORMAL
  23.   WAIT        Démarre l'application et attend qu'elle se termine
  24.   com/prog
  25.               S'il s'agit d'une commande cmd interne ou d'un fichier de
  26.               commandes, alors le processeur de commande est exécuté avec
  27.               l'option /K par cmd.exe. Cela signifie que la fenêtre ne
  28.               sera pas supprimée après l'exécution de la commande.
  29.               S'il ne s'agit pas d'une commande cmd interne ou d'un fichier de
  30.               commandes alors il s'agit d'un programme et il sera exécuté
  31.               comme une application liée à une fenêtre ou comme une
  32.               application console.
  33.   paramètres  Paramètres passés à la commande ou au programme
  34. Si les extensions de commandes sont activées, l'invocation des extensions
  35. de commandes dans la ligne de commandes ou la commande START sont modifiées
  36. comme suit :
  37. Les fichiers non exécutables peuvent être invoqués via leur association de
  38.     fichiers en tapant le nom du fichier en tant que commande (ex :  WORD.DOC
  39.     ouvrirait l'application associée à l'extension de fichier .DOC). Voir les
  40.     commandes ASSOC et FTYPE pour savoir comment créer ces associations depuis
  41.     un script de commandes.
  42. Lors de l'exécution d'une application GUI 32 bits,
  43.     CMD.EXE n'attend pas que l'application se termine avant de revenir à
  44.     l'invite de commandes. Ce nouveau comportement ne se produit PAS s'il
  45.     est exécuté depuis un script de commandes.
  46. Lors de l'exécution d'une ligne de commandes dont la première partie est la
  47.     chaîne "CMD " sans extension ni qualificateur de chemin d'accès, "CMD" est
  48.     remplacé par la valeur de la variable COMSPEC. Ceci permet de ne pas
  49.     utiliser le CMD.EXE du répertoire en cours.
  50. Lors de l'exécution d'une ligne de commandes dont la première partie ne
  51.     contient PAS d'extension, CMD.EXE utilise la valeur de la variable
  52.     d'environnement PATHEXT pour déterminer les extensions à rechercher et
  53.     leur ordre. La valeur par défaut de la variable PATHEXT est :
  54.         .COM;.EXE;.BAT;.CMD
  55.     Notez que la syntaxe est identique à celle de la variable PATH, avec des
  56.     point-virgule séparant les divers éléments.
  57. Lors de la recherche d'un exécutable, s'il n'y a pas de correspondance pour
  58. l'extension, une recherche est effectuée pour vérifier la correspondance entre
  59. nom de fichier et nom de répertoire. S'il y a correspondance, la commande
  60. START ouvre l'explorateur sur ce chemin d'accès. Si cela est fait à partir de
  61. la ligne de commandes, cela est équivalent à effectuer CD /D vers ce chemin
  62. d'accès.

n°1006948
wackevat
Posté le 09-03-2005 à 15:38:28  profilanswer
 

Je suis sous XP Pro SP1 (en).
 

Citation :

C:\>start /?
Starts a separate window to run a specified program or command.
 
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [command/program]
      [parameters]

n°1006951
gregC
Posté le 09-03-2005 à 15:42:24  profilanswer
 

je suis sous xp pro sp1 mais fr ?
donc tout pareil en gros...
mystère...

n°1006959
wackevat
Posté le 09-03-2005 à 15:50:22  profilanswer
 

Comme tu dis ;)

n°1051794
rigo
Posté le 19-04-2005 à 09:47:47  profilanswer
 

Voici un petit batch que j'utilise et qui fonctionne très bien.
 
Je pense que si tu rajoute tes lignes pour tuer les applications en debut de batch ca devrait marcher nickel
 

Code :
  1. @echo off
  2. D:
  3. cd "D:\Program Files\ConTEXT\"
  4. start ConTEXT.exe
  5. cd "D:\Program Files\Mozilla firefox\"
  6. start firefox.exe
  7. cd "D:\Program Files\powermenu\"
  8. start PowerMenu.exe -hideself on
  9. cd "D:\Program Files\process explorer\"
  10. start procexp.exe /t
  11. C:
  12. cd "C:\Program Files\KlipFolio\"
  13. start KlipFolio.exe
  14. cd "C:\Program Files\Stardock\ObjectDock\"
  15. start ObjectDock.exe

n°1054895
gregC
Posté le 21-04-2005 à 10:49:20  profilanswer
 

merci je comparerais avec mon petit dernier, voir si on gagne en rapidité.

n°1466769
elloco054
Posté le 29-10-2006 à 09:51:17  profilanswer
 

gregC a écrit :

merci je comparerais avec mon petit dernier, voir si on gagne en rapidité.


 
voici comment utiliser correctement START dans ton cas :
2 méthodes :
 
sans guillements : START notepad.exe
ou avec, dans quel cas le titre des la fenetre est attendue par START : START "titre fenetre bidon voir vide" "c:\windows\system32\notepad.exe"
 
car si tu fais START "notepad.exe"
il t'ouvre une nouvelle fenetre de commande nomée "notepad.exe" mais comme il n'y a pas de commande apres le titre, il attend des nouvelles commandes ...
 
j'ai mis un moment a comprendre quand j'ai été face au probleme aussi :)

Message cité 1 fois
Message édité par elloco054 le 29-10-2006 à 09:51:42
n°1466806
wackevat
Posté le 29-10-2006 à 11:33:45  profilanswer
 

elloco054 a écrit :

voici comment utiliser correctement START dans ton cas :
2 méthodes :
 
sans guillements : START notepad.exe
ou avec, dans quel cas le titre des la fenetre est attendue par START : START "titre fenetre bidon voir vide" "c:\windows\system32\notepad.exe"


Ta première méthode ne marche qu'avec les exécutables se trouvant dans %PATH%.
 
La bonne réponse "universelle" est :
start /d"chemin_complet_du_dossier_hébergeant_lexécutable" exécutable.exe
 
A l'époque, je ne connaissais pas l'option /d :D

mood
Publicité
Posté le   profilanswer
 


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

  des taskkill en cascade, pour un noob

 

Sujets relatifs
Questions de noob sur le html.[TASM] Help Noob
[c#][Noob] Un peu de tout sur les Formnoob cherche desesperament de l'aide
Modification de variable passée en paramètre (question de noob)bibliotheque graphique pour noob :)
Question from a noob : difference entre "->" et "." ?Aidez un noob!! ?clik:clik pa
Problème de noob ecriture/lecture fichier textegros noob. peut on lire le code hexadecimal dans un fichier.
Plus de sujets relatifs à : des taskkill en cascade, pour un noob


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