WPF 监测U盘插入与拔出
在WPF 中实现U盘监测的方法很多,这里介绍一下事件驱动方式:
1.首先声明两个事件变量
private ManagementEventWatcher watcherInsert; //监测U盘插入
private ManagementEventWatcher watcherRemove; //监测U盘拔出
2.接着,初始化事件,给事件指定对应的方法
private void InitializeUDriverMonitor()
{
//初始化U盘插入监控事件
watcherInsert=new ManagermentEventWatcher();
watcherInsert.Query=new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2");
watcherInsert.EventArrived+=EventArrivedEventHandler(USBInsert);
watcherInsert.Start();
//初始化u盘拔出监控事件
watcherRemove=new ManagermentEventWatcher();
watcherRemove.Query=new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 3");
watcherRemove.EventArrived+=EventArrivedEventHandler(USBRemove);
watcherRemove.Start();
}
private void USBInsert(object sender, EventArrivedEventArgs e){
Dispatcher.Invoke(()=>{
info.Driver="U盘已插入";
});
}
private void USBRemove(object sender,EventArrivedArgs e)
{
Dispatcher.Invoke(()=>{
info.UDriver="无可用设备";
});
}