예제 #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="insert"></param>
        /// <param name="remove"></param>
        public USBListener(USBChangeHandler change, USBHandler insert, USBHandler remove)
        {
            try
            {
                ManagementScope Scope = new ManagementScope("root\\CIMV2");
                Scope.Options.EnablePrivileges = true;

                // USB插入监视
                WqlEventQuery InsertQuery = new WqlEventQuery("__InstanceCreationEvent", new TimeSpan(0, 0, 5), "TargetInstance isa 'Win32_USBControllerDevice'");
                InsertEvent = new ManagementEventWatcher(Scope, InsertQuery);
                InsertEvent.EventArrived += _USBInsert;
                InsertEvent.Start();

                // USB拔出监视
                WqlEventQuery RemoveQuery = new WqlEventQuery("__InstanceDeletionEvent", new TimeSpan(0, 0, 5), "TargetInstance isa 'Win32_USBControllerDevice'");
                RemoveEvent = new ManagementEventWatcher(Scope, RemoveQuery);
                RemoveEvent.EventArrived += _USBRemove;
                RemoveEvent.Start();

                USBInsertEvent += insert;
                USBRemoveEvent += remove;
                USBChangeEvent += change;
            }
            catch { }
        }
예제 #2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="insert"></param>
 /// <param name="remove"></param>
 public USBStorageListener(USBChangeHandler change, USBHandler insert, USBHandler remove)
 {
     USBInsertEvent += insert;
     USBRemoveEvent += remove;
     USBChangeEvent += change;
 }