[C API WIN32] Tuer un processus

Résolu/Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 23 août 2005 à 13:14
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 1 oct. 2005 à 15:36
Bonjour,

J'essaie tant bien que mal de trouver une fonction pour tuer un processus. J'ai effectivement trouvé une belle panoplie de fonctions pour tout ça:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcecoreos5/html/wce50grfProcessandThreadFunctions.asp
Apparemment tout commence avec OpenProcess pour récupérer le Handle de ce processus. En paramètre de OpenProcess il faut mettre l'id du processus sur lequel on veux faire des opérations. C'est probablement facile d'obtenir cet id lorqu'on a créé soi-même le process.
Le problème est que je veux tuer un processus externe qui n'a rien à voir avec le mien. Et je ne connais que le nom de ce processus (ex: machin.exe). J'aimerais donc retrouver une manière pour récupérer l'id de tous les processus en cours d'execution qui ont ce nom....

Merci d'avance :-)

4 réponses

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
23 août 2005 à 13:19
Hmm... Ya bien pskill.exe ( http://www.sysinternals.com/Utilities/PsTools.html ), mais c'est un utilitaire externe...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
23 août 2005 à 13:25
Tiens, c'est pas mal ce truc. Mais oui, c'est dommage, il faudrait que mon application marche en dehors de chez moi.
Peut être que les processus en cours d'execution sont repertoriés dans la base de registre avec leur id....

Dommage, sur le site il propose plein de codes sources, mais pas celui de pskills apparemment...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
24 août 2005 à 13:14
Up :-)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
1 oct. 2005 à 15:36
Ca y est j'ai trouvé, c'est plus exactement une combinaison de fonctions.
D'abord EnumProcesses qui enumère tous les pid des process en cours.
Puis utiliser GetModuleBaseName:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/enumerating_all_processes.asp

Ensuite il n'y a plus qu'à tuer les processus dont le nom est le même que celui que l'on cherche.
0