Я разрабатываю приложение, которое использует ManagementEventWatcher
для мониторинга событий USB
. Код работает правильно, но в некоторых случаях программа потеряла USB events
. Каков правильный способ перечислить все события с USB?ManagementEventWatcher проигрывает события в C#
Я использую следующий код, я использую два запроса для подключения монитора и отсоединения от usb. Мне нужно контролировать множество USB-портов.
USB Monitor
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();