WMI异步调用的问题

时间:2011-07-09 00:54:26

标签: c# windows wmi wmi-query

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

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

这足以让WMI异步查询继续进行吗?我想捕获进程创建的事件。 没有错误,没有例外,但每当我打开一个应用程序(尝试使用cmd-> calc,还有一些我不记得)没有任何反应

1 个答案:

答案 0 :(得分:0)

您是否正在调用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();