WMI를 사용하여 "장치 추가/장치 제거"이벤트에 등록하려고합니다. 내가 장치라고 할 때 - 나는 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;
}
}