Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Sejarah Pelaksanaan Proses dalam .NET?

Bagaimanakah Saya Boleh Mendapatkan Sejarah Pelaksanaan Proses dalam .NET?

Barbara Streisand
Lepaskan: 2025-01-21 00:36:15
asal
318 orang telah melayarinya

How Can I Retrieve the Execution History of Processes in .NET?

Memantau Sejarah Pelaksanaan Proses dengan .NET

Perlu menjejaki bila proses tertentu kali terakhir dijalankan pada sistem? Walaupun Process.GetProcessesByName menunjukkan proses yang sedang berjalan, ia tidak menawarkan data sejarah. Artikel ini menunjukkan penggunaan Instrumen Pengurusan Windows (WMI) untuk menyelesaikan masalah ini.

Memanfaatkan WMI untuk Pemantauan Proses

WMI menyediakan akses untuk memproses acara mula dan berhenti melalui kelas Win32_ProcessTrace. Coretan kod berikut menggambarkan cara memantau acara ini:

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

public class ProcessMonitor
{
    public static void Main(string[] args)
    {
        // Create event watchers for process start and stop events
        ManagementEventWatcher startWatcher = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
        startWatcher.EventArrived += StartWatcher_EventArrived;
        startWatcher.Start();

        ManagementEventWatcher stopWatcher = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"));
        stopWatcher.EventArrived += StopWatcher_EventArrived;
        stopWatcher.Start();

        // Keep the console open until a key is pressed
        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();

        // Stop event watchers
        startWatcher.Stop();
        stopWatcher.Stop();
    }

    private static void StopWatcher_EventArrived(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine($"Process stopped: {e.NewEvent.Properties["ProcessName"].Value}");
    }

    private static void StartWatcher_EventArrived(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine($"Process started: {e.NewEvent.Properties["ProcessName"].Value}");
    }
}</code>
Salin selepas log masuk

Pertimbangan Penting:

Kod ini memerlukan keistimewaan pentadbir untuk berfungsi dengan betul. Ingat untuk melaraskan manifes permohonan dengan sewajarnya. Menjalankan berbilang proses akan membolehkan anda memerhati proses bermula dan menghentikan peristiwa yang dilog oleh program.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Sejarah Pelaksanaan Proses 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