Maison  >  Article  >  développement back-end  >  Comment puis-je obtenir un handle de processus par nom en C ?

Comment puis-je obtenir un handle de processus par nom en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-21 16:01:10561parcourir

How Can I Get a Process Handle by Name in C  ?

Obtention du handle de processus par nom en C

Pour obtenir le handle d'un processus en fonction de son nom de processus, tel que "example.exe ," nous pouvons utiliser l'approche suivante en C.

La première étape consiste à créer un instantané de tous les processus en cours d'exécution à l'aide de CreateToolhelp32Snapshot function :

HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

Ensuite, nous devons parcourir les processus dans l'instantané pour trouver celui avec le nom spécifié :

PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);

if (Process32First(snapshot, &entry) == TRUE) {
  while (Process32Next(snapshot, &entry) == TRUE) {
    if (stricmp(entry.szExeFile, "target.exe") == 0) {
      // Found the process

Avec les informations de processus en main, nous pouvons utilisez la fonction OpenProcess pour obtenir son handle :

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);

Remarque : Pour utiliser le PROCESS_ALL_ACCESS, vous devrez peut-être activer le privilège de débogage, comme indiqué dans l'extrait de code alternatif fourni dans la réponse à la question.

EnableDebugPriv();

Une fois que vous avez le handle de processus, vous pouvez y effectuer diverses opérations, notamment terminer le processus à l'aide de TerminateProcess.

TerminateProcess(hProcess, 0);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn