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!