1. 程式人生 > 實用技巧 >C# 通過WMI檢測USB熱插拔

C# 通過WMI檢測USB熱插拔

需要新增引用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已斷開.");
        }