Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Masa Larian Terakhir bagi Proses yang Ditamatkan dalam .NET?

Bagaimana untuk Mendapatkan Masa Larian Terakhir bagi Proses yang Ditamatkan dalam .NET?

Patricia Arquette
Patricia Arquetteasal
2025-01-21 00:46:09240semak imbas

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

Mengambil Masa Perlaksanaan Terakhir bagi Proses yang Ditamatkan menggunakan .NET

Kaedah .NET Process.GetProcessesByName standard hanya mendapatkan semula proses yang sedang dijalankan. Untuk mendapatkan maklumat tentang proses yang ditamatkan, Instrumen Pengurusan Windows (WMI) menyediakan penyelesaian menggunakan kelas Win32_ProcessTrace.

Contoh Ilustrasi:

Contoh ini menunjukkan cara membuat aplikasi konsol yang memantau proses bermula dan berhenti menggunakan WMI. Ingat untuk menambah rujukan kepada System.Management dalam projek anda.

<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>

Langkah Pelaksanaan:

  1. Kebenaran: Pastikan aplikasi anda mempunyai kebenaran yang mencukupi (keistimewaan dinaikkan).
  2. Pelaksanaan: Jalankan aplikasi.
  3. Pemerhatian: Pantau output konsol untuk melihat proses bermula dan menghentikan acara.

Nota Penting: Prestasi WMI untuk tugasan ini mungkin tidak optimum. Untuk senario berprestasi tinggi, kaedah alternatif harus diterokai.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Masa Larian Terakhir bagi Proses yang Ditamatkan dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn