Heim >Backend-Entwicklung >C++ >Wie kann ich die letzte Ausführungszeit eines gestoppten Prozesses in .NET ermitteln?

Wie kann ich die letzte Ausführungszeit eines gestoppten Prozesses in .NET ermitteln?

Barbara Streisand
Barbara StreisandOriginal
2025-01-21 00:41:09511Durchsuche

How Can I Determine the Last Execution Time of a Stopped Process in .NET?

Aufspüren der letzten Laufzeit eines beendeten .NET-Prozesses

Die .NET Process-Klasse bietet Einblicke in aktuell aktive Prozesse. Bei dem Versuch, die letzte Ausführungszeit eines bereits beendeten Prozesses zu ermitteln, ist dies jedoch unzureichend.

WMI: Die Lösung

Dieser Herausforderung wird mithilfe der Windows-Verwaltungsinstrumentation (WMI) effektiv begegnet. WMI ermöglicht die Überwachung von Prozessstart- und -stoppereignissen. Hier ist eine praktische Umsetzung:

<code class="language-csharp">using System;
using System.Management;

public class ProcessMonitor
{
    public static void Main(string[] args)
    {
        // Watch for process starts
        using (var startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")))
        {
            startWatch.EventArrived += StartWatch_EventArrived;
            startWatch.Start();

            // Watch for process stops
            using (var stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")))
            {
                stopWatch.EventArrived += StopWatch_EventArrived;
                stopWatch.Start();

                Console.WriteLine("Monitoring process activity. Press any key to exit.");
                Console.ReadKey();
            }
            startWatch.Stop();
        }
    }

    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>

Unbedingt erforderlich: Erhöhte Berechtigungen

Um Prozessereignisse effektiv zu überwachen, erfordert diese Anwendung erhöhte Berechtigungen. Passen Sie das Anwendungsmanifest entsprechend an.

Anleitung

Führen Sie das Programm aus. Es überwacht kontinuierlich das Starten und Stoppen von Prozessen und zeigt jedes Mal den Prozessnamen an. Drücken Sie eine beliebige Taste, um die Überwachung zu beenden.

Das obige ist der detaillierte Inhalt vonWie kann ich die letzte Ausführungszeit eines gestoppten Prozesses in .NET ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn