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

如何监控Windows中的进程/程序执行?

如何解决《如何监控Windows中的进程/程序执行?》经验,为你挑选了1个好方法。

我们正在尝试开发一个可以监视在Windows机器上执行的程序/进程的小应用程序.

如果程序/进程不应该运行,则应该阻止它.它的工作原理类似于防病毒.

这是基本的想法.

我想知道挂钩操作系统的方法,以获得有关尝试在机器中运行的每个程序/进程的通知.



1> Rob Haupt..:

最简单的方法是使用WMI.特别是监视Win32_ProcessStartTrace.这比Win32_Process更好,因为它设置为使用事件,而Win32_Process需要更多CPU密集的轮询.以下是如何在C#中完成的.首先确保将System.Management设置为项目的参考.

    public System.Management.ManagementEventWatcher mgmtWtch;

    public Form1()
    {
        InitializeComponent();
        mgmtWtch = new System.Management.ManagementEventWatcher("Select * From Win32_ProcessStartTrace");
        mgmtWtch.EventArrived += new System.Management.EventArrivedEventHandler(mgmtWtch_EventArrived);
        mgmtWtch.Start();
    }

    void mgmtWtch_EventArrived(object sender, System.Management.EventArrivedEventArgs e)
    {
        MessageBox.Show((string)e.NewEvent["ProcessName"]);
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        mgmtWtch.Stop();
    }

每次启动新进程时,代码都会生成一个消息框.从那里你可以检查白名单/黑名单并采取适当的行动.

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