Heim >Backend-Entwicklung >C++ >Wie rufe ich die letzte Laufzeit eines beendeten Prozesses in .NET ab?
Abrufen der letzten Ausführungszeit eines beendeten Prozesses mit .NET
Die standardmäßige .NET Process.GetProcessesByName
-Methode ruft nur aktuell laufende Prozesse ab. Um Informationen über beendete Prozesse zu erhalten, bietet Windows Management Instrumentation (WMI) eine Lösung unter Verwendung der Win32_ProcessTrace
-Klassen.
Anschauliches Beispiel:
Dieses Beispiel zeigt, wie Sie eine Konsolenanwendung erstellen, die das Starten und Stoppen von Prozessen mithilfe von WMI überwacht. Denken Sie daran, in Ihrem Projekt einen Verweis auf System.Management
hinzuzufügen.
<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>
Implementierungsschritte:
Wichtiger Hinweis: Die Leistung von WMI für diese Aufgabe ist möglicherweise nicht optimal. Für Hochleistungsszenarien sollten alternative Methoden untersucht werden.
Das obige ist der detaillierte Inhalt vonWie rufe ich die letzte Laufzeit eines beendeten Prozesses in .NET ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!