【问题标题】:Is there a way to get an event from windows on every new process that is started?有没有办法在每个启动的新进程上从 Windows 获取事件?
【发布时间】:2010-03-02 14:44:17
【问题描述】:

我想在操作系统每次启动新进程时收到通知。
请注意,我需要在本机代码中这样做(我知道可以使用 System.Management 成员在托管代码中完成)。
如果有办法在进程开始运行之前获得它,则加分:)(即在其初始化期间)

谢谢。

【问题讨论】:

    标签: c++ windows winapi process native


    【解决方案1】:

    使用驱动程序的问题是您需要获得安装它的权限,否则我认为是最安全的方法。

    在用户空间中,您可以尝试创建一个窗口挂钩,如果此类应用程序使用窗口,该挂钩将起作用,但在其他方面非常令人讨厌。

    另一方面,您可以尝试使用WMI,这是 C# 中使用的底层技术。你可以在this anwers 和这个examples 中寻找指针。

    【讨论】:

    • 感谢@Ismael,我需要 WMI 的链接。
    【解决方案2】:

    实时 ETW 跟踪将以较低的系统开销为您提供此信息。请注意,这不会让您挂钩进程创建(即它只是一个通知,您无法控制进程是否实际启动)

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2021-07-27
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 2011-03-26
      相关资源
      最近更新 更多