C# 通過WMI檢測USB熱插拔
阿新 • • 發佈:2021-01-01
需要新增引用System.Management.dll
static void Main(string[] args) { var watchConnect = new ManagementEventWatcher(new WqlEventQuery { EventClassName = "__InstanceCreationEvent", Condition = "TargetInstance ISA 'Win32_USBControllerDevice'", WithinInterval = new TimeSpan(0, 0, 2) }); watchConnect.EventArrived += new EventArrivedEventHandler(USBDevice_Connected); watchConnect.Start(); var watchDelete = new ManagementEventWatcher(new WqlEventQuery { EventClassName = "__InstanceDeletionEvent", Condition = "TargetInstance ISA 'Win32_USBControllerDevice'", WithinInterval = new TimeSpan(0, 0, 2) }); watchDelete.EventArrived += new EventArrivedEventHandler(USBDevice_Disconnected); watchDelete.Start(); Console.ReadLine(); } private static void USBDevice_Connected(object sender, EventArrivedEventArgs e) { Console.WriteLine("新的USB已連線."); } private static void USBDevice_Disconnected(object sender, EventArrivedEventArgs e) { Console.WriteLine("某個USB已斷開."); }