zoukankan      html  css  js  c++  java
  • 使用WMI监控进程启动与结束

    需要添加引用System.Management

    代码:

    static void Main(string[] args)
    {
    //创建WQL事件查询,监视进程开启
    var qCreate = new WqlEventQuery("__InstanceCreationEvent", TimeSpan.FromSeconds(1), "TargetInstance ISA 'Win32_Process'");
    //创建WQL事件查询,监视进程关闭
    var qDelete = new WqlEventQuery("__InstanceDeletionEvent", TimeSpan.FromSeconds(1), "TargetInstance ISA 'Win32_Process'");

    //创建事件查询的侦听器(ManagementEventWatcher)
    var wCreate = new ManagementEventWatcher(qCreate);
    var wDelete = new ManagementEventWatcher(qDelete);

    //事件注册
    wCreate.EventArrived += (sender, e) =>
    {
    Console.WriteLine("开启进程:{0}", GetInfo(e.NewEvent));
    };
    wDelete.EventArrived += (sender, e) =>
    {
    Console.WriteLine("关闭:{0}", GetInfo(e.NewEvent));
    };

    //开始异步侦听
    wCreate.Start();
    wDelete.Start();

    Console.WriteLine("按任意键结束");
    Console.ReadKey();//*/
    }

    //输出事件对应的ManagementBaseObject(本例中的Win32_Process实例)的信息

    static string GetInfo(ManagementBaseObject mobj)

    {
    var instance = (ManagementBaseObject)mobj["TargetInstance"];
    return string.Format("{0} - {1} - {2}", instance["Name"],instance["ProcessId"], DateTime.Now);
    }

    运行结果:

  • 相关阅读:
    Intellij Idea 2017创建web项目及tomcat部署实战
    使用docker安装mysql服务
    python2--升级python3
    SpringCloud--注册中心Eureka
    SpringBoot--属性加载顺序
    Jmeter--压测dubbo接口
    较快的maven的settings.xml文件
    Spring boot:logback文件配置
    Spring--AOP
    34组代码敲不队记账类app会议纪要
  • 原文地址:https://www.cnblogs.com/moonlight-zjb/p/3641881.html
Copyright © 2011-2022 走看看