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="无可用设备";
   
   });
}
posted @ 2025-05-13 11:55  丹心石  阅读(37)  评论(0)    收藏  举报