이벤트를 모니터링하기 위해 ManagementEventWatcher
을 사용하는 응용 프로그램을 개발 중입니다. 코드는 제대로 작동하지만 어떤 경우에는 프로그램이 일부 USB events
을 잃어 버렸습니다. USB의 모든 이벤트를 나열하는 올바른 방법은 무엇입니까?ManagementEventWatcher가 C#에서 이벤트를 잃음
다음 코드를 사용 중이며 모니터 연결과 USB에서 분리하는 두 가지 쿼리를 사용하고 있습니다. 많은 USB 포트를 모니터링해야합니다.
USB 장치의 삽입 또는 제거를 위해 모니터링 할 때 나는 비슷한 일을 경험
ManagementEventWatcher watchUSBattach = new ManagementEventWatcher();
ManagementEventWatcher watchUSBDettach = new ManagementEventWatcher();
WqlEventQuery queryUsbAttach = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2 ");
watchUSBattach.EventArrived += new EventArrivedEventHandler(watchUSBEventAdd);
watchUSBattach.Query = queryUsbAttach;
watchUSBattach.Start();
WqlEventQuery queryUsbDettach = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 3");
watchUSBDettach.EventArrived += new EventArrivedEventHandler(watchUSBEventDettach);
watchUSBDettach.Query = queryUsbDettach;
watchUSBDettach.Start();