Maison >développement back-end >C++ >Comment puis-je suivre les événements de démarrage et d'arrêt de processus à l'aide de .NET et WMI ?
.NET offre une méthode puissante pour suivre les événements du cycle de vie des processus à l'aide de Windows Management Instrumentation (WMI). Cette approche est particulièrement utile pour déterminer l'heure de la dernière exécution d'un processus spécifique.
En utilisant les classes Win32_ProcessTrace
, vous pouvez surveiller efficacement les démarrages et les arrêts des processus. Le code suivant montre comment y parvenir :
<code class="language-csharp">using System; using System.Management; public class ProcessTracker { public static void Main() { // Initialize event watchers for process start and stop events. ManagementEventWatcher startWatcher = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatcher.EventArrived += startWatcher_EventArrived; startWatcher.Start(); ManagementEventWatcher stopWatcher = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatcher.EventArrived += stopWatcher_EventArrived; stopWatcher.Start(); // Await user input to terminate the application. Console.WriteLine("Press any key to exit."); while (!Console.KeyAvailable) System.Threading.Thread.Sleep(50); // Stop event watchers upon application closure. startWatcher.Stop(); stopWatcher.Stop(); } private static void stopWatcher_EventArrived(object sender, EventArrivedEventArgs e) { // Process stop event handler; logs the process name. Console.WriteLine("Process stopped: {0}", e.NewEvent.Properties["ProcessName"].Value); } private static void startWatcher_EventArrived(object sender, EventArrivedEventArgs e) { // Process start event handler; logs the process name. Console.WriteLine("Process started: {0}", e.NewEvent.Properties["ProcessName"].Value); } }</code>
Rappelez-vous : cette application nécessite des privilèges élevés. Modifiez le manifeste de l'application en conséquence. Ce code fournit une solution robuste pour suivre les événements de démarrage et d'arrêt de processus, permettant une identification précise de la dernière heure d'exécution pour un processus donné.
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!