Maison > développement back-end > C++ > Comment récupérer le dernier temps d'exécution d'un processus terminé dans .NET ?

Comment récupérer le dernier temps d'exécution d'un processus terminé dans .NET ?

Patricia Arquette
Libérer: 2025-01-21 00:46:09
original
238 Les gens l'ont consulté

How to Retrieve the Last Run Time of a Terminated Process in .NET?

Récupération de l'heure de la dernière exécution d'un processus terminé à l'aide de .NET

La méthode standard .NET Process.GetProcessesByName récupère uniquement les processus en cours d'exécution. Pour obtenir des informations sur les processus terminés, Windows Management Instrumentation (WMI) fournit une solution utilisant les classes Win32_ProcessTrace.

Exemple illustratif :

Cet exemple montre comment créer une application console qui surveille les démarrages et les arrêts des processus à l'aide de WMI. Pensez à ajouter une référence à System.Management dans votre projet.

<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>
Copier après la connexion

Étapes de mise en œuvre :

  1. Autorisations : Assurez-vous que votre application dispose d'autorisations suffisantes (privilèges élevés).
  2. Exécution : Exécutez l'application.
  3. Observation : Surveillez la sortie de la console pour voir les événements de démarrage et d'arrêt du processus.

Remarque importante : Les performances de WMI pour cette tâche peuvent ne pas être optimales. Pour les scénarios hautes performances, des méthodes alternatives doivent être explorées.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal