WMI异步调用的问题

本文关键字:问题 调用 异步 WMI | 更新日期: 2023-09-27 18:01:32

如果我使用WMI异步查询的绝对默认设置:

mgtEvWatcher = new ManagementEventWatcher("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'"); 
mgtEvWatcher.EventArrived += new EventArrivedEventHandler(mgtEvWatcher_EventArrived); 

这是否足以让WMI异步查询继续进行?我想捕获流程创建的事件。没有错误,没有例外,但每当我打开一个应用程序(尝试cmd->calc和一些我不记得)什么都没有发生

WMI异步调用的问题

您正在调用ManagementEventWatcher.Start方法吗?订阅事件

如果你想监视进程的创建,你必须使用__InstanceCreationEvent wmi类。

试试这个代码

mgtEvWatcher = new ManagementEventWatcher("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'"); 
mgtEvWatcher.EventArrived += new EventArrivedEventHandler(mgtEvWatcher_EventArrived); 
mgtEvWatcher.Start();