Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengesan Penciptaan/Penamatan Proses Win32 Tanpa Pemacu Mod Kernel dalam C ?
Kesan Penciptaan/Penamatan Proses Win32 tanpa Pemacu Mod Kernel dalam C
Sementara pemacu mod kernel NT menawarkan API komprehensif untuk proses pemberitahuan penciptaan dan penamatan, adalah mungkin untuk mencapai fungsi yang sama dalam C menggunakan hanya Win32 API fungsi.
Menggunakan WMI
WMI (Windows Management Instrumentation) menyediakan set pemberitahuan acara yang kaya, termasuk yang berkaitan dengan penciptaan dan penamatan proses. Walau bagaimanapun, WMI mungkin tidak sesuai untuk semua senario, terutamanya jika anda perlu menjejaki penamatan proses sahaja.
Menggunakan Panggilan Balik
Pendekatan yang lebih cekap ialah menggunakan fungsi panggil balik untuk menunggu proses tertentu ditamatkan. Ini boleh dicapai dengan langkah berikut:
Kod Contoh
VOID CALLBACK WaitOrTimerCallback( _In_ PVOID lpParameter, _In_ BOOLEAN TimerOrWaitFired ) { MessageBox(0, L"The process has exited.", L"INFO", MB_OK); return; } DWORD dwProcessID = 1234; HANDLE hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID); HANDLE hNewHandle; RegisterWaitForSingleObject(&hNewHandle, hProcHandle , WaitOrTimerCallback, NULL, INFINITE, WT_EXECUTEONLYONCE);
Kod ini akan memaparkan kotak mesej sebaik sahaja proses dengan ID dwProcessID ditamatkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Penciptaan/Penamatan Proses Win32 Tanpa Pemacu Mod Kernel dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!