Récupération de l'heure de la dernière exécution d'un processus terminé à l'aide de .NET
La méthode standard .NET Process.GetProcessesByName
récupère uniquement les processus en cours d'exécution. Pour obtenir des informations sur les processus terminés, Windows Management Instrumentation (WMI) fournit une solution utilisant les classes Win32_ProcessTrace
.
Exemple illustratif :
Cet exemple montre comment créer une application console qui surveille les démarrages et les arrêts des processus à l'aide de WMI. Pensez à ajouter une référence à System.Management
dans votre projet.
<code class="language-csharp">using System; using System.Management; public class ProcessMonitor { public static void Main(string[] args) { // Establish event watchers for process start and stop events. using (ManagementEventWatcher startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"))) { startWatch.EventArrived += StartWatch_EventArrived; startWatch.Start(); using (ManagementEventWatcher stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"))) { stopWatch.EventArrived += StopWatch_EventArrived; stopWatch.Start(); // Await user input to end monitoring. Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } } private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine($"Process stopped: {e.NewEvent.Properties["ProcessName"].Value}"); } private static void StartWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine($"Process started: {e.NewEvent.Properties["ProcessName"].Value}"); } }</code>
Étapes de mise en œuvre :
Remarque importante : Les performances de WMI pour cette tâche peuvent ne pas être optimales. Pour les scénarios hautes performances, des méthodes alternatives doivent être explorées.
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!