为什么Win32_ProcessStopTrace-Events到达,但Win32_ProcessStartTrace没

本文关键字:Win32 ProcessStartTrace 到达 ProcessStopTrace-Events 为什么 | 更新日期: 2023-09-27 18:19:20

考虑以下代码:

using (ManagementEventWatcher watcher = new ManagementEventWatcher("select * from Win32_ProcessStopTrace")) {
    watcher.EventArrived += (object sender, EventArrivedEventArgs e) => {
        Console.WriteLine("{0} stopped", (string)e.NewEvent["ProcessName"]);
    };
    watcher.Start();
    while (!Console.KeyAvailable)
        System.Threading.Thread.Sleep(50);
    watcher.Stop();
}

当我运行这段代码(作为管理员)时,它会在我关闭任何其他应用程序时通知我。

第一:当使用Win32_ProcessStartTrace而不是Win32_ProcessStopTrace时,我没有收到任何启动进程的通知。为什么呢?

第二:如果有可能监视(每个)启动进程,我可以暂停它们,做其他事情,然后继续执行它们吗?


版本信息:

  • Windows 8.1 x64 (v6.3 Build 9600)

  • 。. NET Framework v4.0.30319

  • , 4.6.00081(根据VS)
  • 我不知道是否需要特定的更新,所以你可以要求他们)

为什么Win32_ProcessStopTrace-Events到达,但Win32_ProcessStartTrace没

正如@HansPassant指出的那样,这个查询不适用于Windows 8.1。这与安全更新(KB3045999)有关。在已知问题下有一个修复程序(KB3094199)的链接来修复这个问题。安装此修复程序并重新启动计算机后,查询终于工作了。