.NET Process
类提供对当前活动进程的深入了解。 但是,当尝试确定已结束的进程的最后执行时间时,它会出现不足。
使用 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中文网其他相关文章!