当插入便携式设备并且能够这样做时,我试图捕捉该事件。我的问题是它调用了两个插入事件。
这是我的代码:
private void DeviceInsertedEvent(object sender, EventArrivedEventArgs e)
{
MessageBox.Show("Device Received");
}
private void DeviceRemovedEvent(object sender, EventArrivedEventArgs e)
{
MessageBox.Show("Device Removed");
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 3 WHERE TargetInstance ISA 'Win32_PnPEntity'");
ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);
insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInsertedEvent);
insertWatcher.Start();
WqlEventQuery removeQuery = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 3 WHERE TargetInstance ISA 'Win32_PnPEntity'");
ManagementEventWatcher removeWatcher = new ManagementEventWatcher(removeQuery);
removeWatcher.EventArrived += new EventArrivedEventHandler(DeviceRemovedEvent);
removeWatcher.Start();
}
当我将手机插入电脑时。发生了两起收到设备的情况。
我如何让它在第一个实例上停止?