WMIを使用して、「Device added/Device removed」イベントに登録しようとしています。私がデバイスと言うとき - 私はアクセス可能なファイルがあるDisk-On-Keyまたは他のデバイスの行に何かを意味します...WMIとWin32_DeviceChangeEvent - 間違ったイベントタイプが返されましたか?
私はイベントに登録していて、イベントが発生していますしかし、私が見たいと思っているものとは、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;
}
}