如果我使用WMI异步查询的绝对默认设置:
mgtEvWatcher = new ManagementEventWatcher("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'");
mgtEvWatcher.EventArrived += new EventArrivedEventHandler(mgtEvWatcher_EventArrived);
这足以让WMI异步查询继续进行吗?我想捕获进程创建的事件。 没有错误,没有例外,但每当我打开一个应用程序(尝试使用cmd-> calc,还有一些我不记得)没有任何反应
答案 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();