Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mendapatkan Pengendalian Proses mengikut Nama dalam 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);
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
Dengan maklumat proses di tangan, kami boleh menggunakan fungsi OpenProcess untuk mendapatkannya pemegang:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
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();
Sebaik sahaja anda mempunyai pemegang proses, anda boleh melakukan pelbagai operasi padanya, termasuk menamatkan proses menggunakan TerminateProcess.
TerminateProcess(hProcess, 0);
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!