C# USB拔插监听
C#查找设备管理器中所有的 USB 设备
wpf、winform 监听USB拔插时触发
使用 System.Management
using System;
using System.Management;
class Program
{
static void Main(string[] args)
{
// 创建 USB 插入和拔出事件的管理器
ManagementEventWatcher watcherInsert = new ManagementEventWatcher();
WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2");
watcherInsert.EventArrived += (s, e) =>
{
Console.WriteLine("USB 插入事件发生!");
};
watcherInsert.Query = insertQuery;
watcherInsert.Start();
// 创建 USB 拔出事件的管理器
ManagementEventWatcher watcherRemove = new ManagementEventWatcher();
WqlEventQuery removeQuery = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 3");
watcherRemove.EventArrived += (s, e) =>
{
Console.WriteLine("USB 拔出事件发生!");
};
watcherRemove.Query = removeQuery;
watcherRemove.Start();
Console.WriteLine("正在监听 USB 插入和拔出事件,请按任意键退出...");
Console.ReadKey();
// 停止监听
watcherInsert.Stop();
watcherRemove.Stop();
}
}