"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment déterminer le dernier temps d'exécution d'un processus arrêté dans .NET?

Comment déterminer le dernier temps d'exécution d'un processus arrêté dans .NET?

Publié le 2025-04-22
Parcourir:209

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

suivi le dernier temps d'exécution d'un processus .net terminé

La classe .net processus offre des informations sur les processus actuellement actifs. Cependant, il ne fait pas besoin de déterminer le dernier temps d'exécution d'un processus déjà terminé.

wmi: la solution

Ce défi est efficacement relevé à l'aide de Windows Management Instrumentation (WMI). WMI permet les événements de démarrage et d'arrêt du processus de surveillance. Voici une implémentation pratique:

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}");
    }
}

Essential: Autorisations élevées

Pour surveiller efficacement les événements de processus, cette application nécessite des privilèges élevés. Ajustez le manifeste de l'application en conséquence.

comment utiliser

Exécutez le programme. Il surveillera en continu le processus démarre et s'arrête, affichant le nom du processus à chaque fois. Appuyez sur n'importe quelle touche pour terminer la surveillance.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3