WMI
WMI全称为Windows Management Instrumentation。很明显这个服务是基于Windows系统的。通过调用WIM我们可以很方便的获取到本机上一些设备信息。包括cup 信息、插入的usb设备信息。今天主要说明的是通过调用wim 获取本机的USB设备信息。C#中调用WIM
private Dictionary<string, string> USBControllerDevice(){Dictionary<string, string> controllers = new Dictionary<string, string>();//去除其他USB设备的影响ManagementObjectCollection USBControllerDeviceCollection = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity Where DeviceID like 'USBSTOR%'and ((DeviceID like '%NISEC&PROD_KEY%') or (DeviceID like '%AISINO&PROD_AIRY%'))").Get();if (USBControllerDeviceCollection != null){foreach (var USBControllerDevice in USBControllerDeviceCollection){controllers.Add(USBControllerDevice.GetPropertyValue("DeviceID").NullValue(), USBControllerDevice.GetPropertyValue("Caption").NullValue());}}return controllers;}
说明:进行WMI调用前首先要引用System.Management。对象ManagementObjectSearcher有很多有参的构造函数。这里主要使用到到入参为string 类型的构造函数,看入参名称为queryString,很清晰的告诉了我们这里要传入的就是一个查询语句。我这里的查询语句是查询本机是否插入了航信设备或者百旺的税盘设备。还要说明一下。每种USB设备其实都有一个厂家的标识。如果你不知道你USB的特殊标识可以百度一下USB 插入了在注册表中的展示位置。在注册表中也可以看到对应USB 的特殊标识信息。上面代码的作用就是检测当前电脑是否插入了我要求的设备。