Prozesshandle nach Namen in C abrufen
Um das Handle eines Prozesses basierend auf seinem Prozessnamen abzurufen, z. B. „example.exe“. „können wir den folgenden Ansatz in C verwenden.
Der erste Schritt besteht darin, mit CreateToolhelp32Snapshot einen Snapshot aller laufenden Prozesse zu erstellen Funktion:
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
Als nächstes müssen wir die Prozesse im Snapshot durchlaufen, um den Prozess mit dem angegebenen Namen zu finden:
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
Mit den vorliegenden Prozessinformationen können wir das Verwenden Sie die OpenProcess-Funktion, um ihr Handle zu erhalten:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
Hinweis: Um die zu verwenden PROCESS_ALL_ACCESS-Berechtigung, müssen Sie möglicherweise die Debug-Berechtigung aktivieren, wie im alternativen Codeausschnitt in der Antwort auf die Frage gezeigt.
EnableDebugPriv();
Sobald Sie das Prozesshandle haben, können Sie verschiedene Vorgänge darauf ausführen, einschließlich Beenden des Prozesses mit TerminateProcess.
TerminateProcess(hProcess, 0);
Das obige ist der detaillierte Inhalt vonWie kann ich in C ein Prozesshandle nach Namen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!