Suivi de l'exécution du processus avec des techniques .NET améliorées
L'utilisation simple de Process.GetProcessesByName
n'offre qu'une vue momentanée des processus actifs ; c'est insuffisant pour suivre la durée d'exécution d'un processus sur plusieurs instances. Une solution plus robuste est nécessaire.
Exploiter WMI pour une surveillance précise des processus
Windows Management Instrumentation (WMI) fournit un mécanisme puissant pour la surveillance détaillée des événements du système, y compris les heures précises de début et de fin des processus. Le code C# suivant illustre l'application de WMI à cet effet :
<code class="language-csharp">using System; using System.Management; public class ProcessMonitor { public static void Main(string[] args) { // Watch for process start events using (ManagementEventWatcher startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"))) { startWatch.EventArrived += StartWatch_EventArrived; startWatch.Start(); // Watch for process stop events using (ManagementEventWatcher stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"))) { stopWatch.EventArrived += StopWatch_EventArrived; stopWatch.Start(); Console.WriteLine("Monitoring process starts and stops. 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>
L'exécution de ce code avec les privilèges d'administrateur permet une surveillance en temps réel des événements du cycle de vie des processus. Cela fournit une mesure très précise du temps d’exécution de n’importe quel processus, sur plusieurs exécutions. Gardez à l’esprit qu’une surveillance intensive peut avoir un impact sur les performances du système.
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!