首页 > 后端开发 > C++ > 如何检索 .NET 中终止进程的上次运行时间?

如何检索 .NET 中终止进程的上次运行时间?

Patricia Arquette
发布: 2025-01-21 00:46:09
原创
239 人浏览过

How to Retrieve the Last Run Time of a Terminated Process in .NET?

使用 .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>
登录后复制

实施步骤:

  1. 权限:确保您的应用程序具有足够的权限(提升的权限)。
  2. 执行:运行应用程序。
  3. 观察:监视控制台输出以查看进程启动和停止事件。

重要说明:WMI 在此任务上的性能可能不是最佳的。对于高性能场景,应该探索替代方法。

以上是如何检索 .NET 中终止进程的上次运行时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板