Heim >Backend-Entwicklung >C++ >Wie kann ich Prozessstart- und -stoppereignisse mithilfe von .NET und WMI verfolgen?
.NET bietet eine leistungsstarke Methode zum Verfolgen von Prozesslebenszyklusereignissen mithilfe der Windows-Verwaltungsinstrumentation (WMI). Dieser Ansatz ist besonders nützlich, um die letzte Ausführungszeit eines bestimmten Prozesses zu bestimmen.
Durch die Verwendung der Win32_ProcessTrace
-Klassen können Sie Prozessstarts und -stopps effektiv überwachen. Der folgende Code zeigt, wie dies erreicht wird:
<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>
Denken Sie daran: Für diese Anwendung sind erhöhte Berechtigungen erforderlich. Ändern Sie das Anwendungsmanifest entsprechend. Dieser Code bietet eine robuste Lösung zum Verfolgen von Prozessstart- und -stoppereignissen und ermöglicht die genaue Identifizierung des letzten Ausführungszeitpunkts für einen bestimmten Prozess.
Das obige ist der detaillierte Inhalt vonWie kann ich Prozessstart- und -stoppereignisse mithilfe von .NET und WMI verfolgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!