USB设备已连接

我正在尝试创建一个函数,在设备pid和vid的情况下检测usb设备是否已连接。 我希望它看起来像这样,我只是不确定如何在C#中做到这一点。

public bool IsUsbDeviceConnected(string pid, string vid) { //Code here } 

 //using System.Management public bool IsUsbDeviceConnected(string pid, string vid) { using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBControllerDevice")) { using (var collection = searcher.Get()) { foreach (var device in collection) { var usbDevice = Convert.ToString(device); if (usbDevice.Contains(pid) && usbDevice.Contains(vid)) return true; } } } return false; } 

可能是这样的

 //import the System.Management namespace at the top in your "using" statement. Then in a method, or on a button click: ManagementObjectCollection collection; using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'")) collection = searcher.Get(); foreach (ManagementObject currentObject in collection) { ManagementObject theSerialNumberObjectQuery = new ManagementObject("Win32_PhysicalMedia.Tag='" + currentObject["DeviceID"] + "'"); MessageBox.Show(theSerialNumberObjectQuery["SerialNumber"].ToString()); } collection.Dispose(); 

使用WMI