Maison > développement back-end > C++ > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-21 16:01:10
original
582 Les gens l'ont consulté

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);
Copier après la connexion

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
Copier après la connexion

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);
Copier après la connexion

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();
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal