[C API WIN32] Tuer un processus

Résolu
kilian Messages postés 8854 Statut Modérateur -  
kilian Messages postés 8854 Statut Modérateur -
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 Statut Membre 124
 
Hmm... Ya bien pskill.exe ( http://www.sysinternals.com/Utilities/PsTools.html ), mais c'est un utilitaire externe...
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
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 8854 Statut Modérateur 1 526
 
Up :-)
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
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