C# 获取USB状态
判断某个设备是否已连接:
1 private bool CheckLaserPenDeviceConnected(sting vid,string pid) 2 { 3 var devices = GetUsbDevices(); 4 var penGuid = $"VID_{vid}&PID_{pid}"; 5 foreach (var device in devices) 6 { 7 var pnpDeviceId = device.PNPDeviceID; 8 if (pnpDeviceId.ToLower().Contains(penGuid.ToLower())) 9 { 10 return true; 11 } 12 } 13 return false; 14 }
获取所有USB列表
/// <summary> /// 获取所有USB设备信息 /// </summary> /// <returns></returns> private static List<(string DeviceID, string PNPDeviceID, string Description)> GetUsbDevices() { List<(string DeviceID, string PNPDeviceID, string Description)> devices = new List<(string, string, string)>(); using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub")) { using (var collection = searcher.Get()) { foreach (var device in collection) { devices.Add(((string) device.GetPropertyValue("DeviceID"), (string) device.GetPropertyValue("PNPDeviceID"), (string) device.GetPropertyValue("Description"))); } } } return devices; }

浙公网安备 33010602011771号