【发布时间】:2008-09-02 14:48:28
【问题描述】:
我正在尝试使用 WMI 注册“添加设备/删除设备”事件。当我说设备时 - 我的意思是 Disk-On-Key 或任何其他具有我可以访问的文件的设备...
我正在注册该事件,该事件已引发,但 EventType 属性与我期望看到的不同。
文档 (MSDN) 指出:1- 配置更改,2- 添加设备,3- 删除设备 4- 对接。出于某种原因,我总是得到 1 的值。
有什么想法吗?
这里是示例代码:
public class WMIReceiveEvent
{
public WMIReceiveEvent()
{
try
{
WqlEventQuery query = new WqlEventQuery(
"SELECT * FROM Win32_DeviceChangeEvent");
ManagementEventWatcher watcher = new ManagementEventWatcher(query);
Console.WriteLine("Waiting for an event...");
watcher.EventArrived +=
new EventArrivedEventHandler(
HandleEvent);
// Start listening for events
watcher.Start();
// Do something while waiting for events
System.Threading.Thread.Sleep(10000);
// Stop listening for events
watcher.Stop();
return;
}
catch(ManagementException err)
{
MessageBox.Show("An error occurred while trying to receive an event: " + err.Message);
}
}
private void HandleEvent(object sender,
EventArrivedEventArgs e)
{
Console.WriteLine(e.NewEvent.GetPropertyValue["EventType"]);
}
public static void Main()
{
WMIReceiveEvent receiveEvent = new WMIReceiveEvent();
return;
}
}
【问题讨论】:
标签: event-handling wmi