当前位置:  开发笔记 > 编程语言 > 正文

检测应用程序的启动

如何解决《检测应用程序的启动》经验,为你挑选了1个好方法。

在启动外部应用程序时,如何在Windows上使用C#进行检测?

我尝试了FilesystemWatcher,它不起作用,因为文件没有真正改变.还有一个计时器不断检查所有打开的进程可能有点过分杀死.有没有其他方法可以做到这一点?如果没有在C#中,可以在C++中这样做(如果是这样,请举个例子).

我想这样做的原因是为了记录目的.



1> MarmouCorp..:

您可以使用System.Management和WMI(Windows Management Instrumentation)

class WMIEvent {
    public static void Main() {
        WMIEvent we = new WMIEvent();
        ManagementEventWatcher w= null;
        WqlEventQuery q;
        try {
            q = new WqlEventQuery();
            q.EventClassName = "Win32_ProcessStartTrace";
            w = new ManagementEventWatcher(q);
            w.EventArrived += new EventArrivedEventHandler(we.ProcessStartEventArrived);
            w.Start();
            Console.ReadLine(); // block main thread for test purposes
        }
        finally {
            w.Stop();
        }
 }

    public void ProcessStartEventArrived(object sender, EventArrivedEventArgs e) {    
        foreach(PropertyData pd in e.NewEvent.Properties) {
            Console.WriteLine("\n============================= =========");
            Console.WriteLine("{0},{1},{2}",pd.Name, pd.Type, pd.Value);
        }
  }

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有