使用 .NET 检索终止进程的上次执行时间
标准 .NET Process.GetProcessesByName
方法仅检索当前正在运行的进程。 为了获取有关终止进程的信息,Windows Management Instrumentation (WMI) 提供了使用 Win32_ProcessTrace
类的解决方案。
示例:
此示例演示如何创建一个使用 WMI 监视进程启动和停止的控制台应用程序。 请记住在您的项目中添加对 System.Management
的引用。
<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>
实施步骤:
重要说明:WMI 在此任务上的性能可能不是最佳的。对于高性能场景,应该探索替代方法。
以上是如何检索 .NET 中终止进程的上次运行时间?的详细内容。更多信息请关注PHP中文网其他相关文章!