Détecter la création/l'arrêt de processus Win32 sans pilote en mode noyau en C
Alors que les pilotes en mode noyau NT offrent une API complète pour les processus notifications de création et de résiliation, il est possible d'obtenir des fonctionnalités similaires en C en utilisant uniquement les fonctions de l'API Win32.
En utilisant WMI
WMI (Windows Management Instrumentation) fournit un riche ensemble de notifications d'événements, y compris celles liées à la création et à l'arrêt des processus. Cependant, WMI peut ne pas convenir à tous les scénarios, surtout si vous devez suivre uniquement la fin du processus.
Utiliser un rappel
Une approche plus efficace consiste à utiliser un fonction de rappel pour attendre la fin d'un processus spécifique. Ceci peut être réalisé en suivant les étapes suivantes :
Exemple de code
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);
Ce code affichera une boîte de message une fois le processus terminé avec l'ID dwProcessID se termine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!