Bagaimana Saya Boleh Mendapatkan Pengendalian Proses mengikut Nama dalam C?

Barbara Streisand
Lepaskan: 2024-11-21 16:01:10
asal
561 orang telah melayarinya

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

Mendapatkan Pengendalian Proses mengikut Nama dalam C

Untuk mendapatkan pemegang proses berdasarkan nama prosesnya, seperti "example.exe ," kita boleh menggunakan pendekatan berikut dalam C .

Langkah pertama ialah mencipta gambaran semua proses yang sedang berjalan menggunakan Fungsi CreateToolhelp32Snapshot:

HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
Salin selepas log masuk

Seterusnya, kita perlu mengulangi proses dalam petikan untuk mencari yang mempunyai nama yang ditentukan:

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
Salin selepas log masuk

Dengan maklumat proses di tangan, kami boleh menggunakan fungsi OpenProcess untuk mendapatkannya pemegang:

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
Salin selepas log masuk

Nota: Untuk menggunakan keistimewaan PROCESS_ALL_ACCESS, anda mungkin perlu mendayakan keistimewaan nyahpepijat, seperti yang ditunjukkan dalam coretan kod alternatif yang disediakan dalam jawapan soalan.

EnableDebugPriv();
Salin selepas log masuk

Sebaik sahaja anda mempunyai pemegang proses, anda boleh melakukan pelbagai operasi padanya, termasuk menamatkan proses menggunakan TerminateProcess.

TerminateProcess(hProcess, 0);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mendapatkan Pengendalian Proses mengikut Nama dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan