Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in C ein Prozesshandle nach Namen abrufen?

Wie kann ich in C ein Prozesshandle nach Namen abrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-21 16:01:10562Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn