首頁 > 後端開發 > C++ > 如何確定 .NET 中已停止進程的最後執行時間?

如何確定 .NET 中已停止進程的最後執行時間?

Barbara Streisand
發布: 2025-01-21 00:41:09
原創
507 人瀏覽過

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

追蹤終止的 .NET 進程的上次運行時間

.NET Process 類別提供對目前活動進程的深入了解。 但是,當嘗試確定已結束的進程的最後執行時間時,它會出現不足。

WMI:解決方案

使用 Windows Management Instrumentation (WMI) 可以有效解決這個挑戰。 WMI 允許監視進程啟動和停止事件。 這是一個實際的實作:

<code class="language-csharp">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}");
    }
}</code>
登入後複製

必需:提升權限

為了有效監控進程事件,此應用程式需要提升權限。 相應地調整應用程式清單。

使用方法

運行程式。它將持續監控進程的啟動和停止,每次顯示進程名稱。 按任意鍵結束監控。

以上是如何確定 .NET 中已停止進程的最後執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板