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
Lepaskan: 2025-01-21 00:46:09
asal
238 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan