判断某个设备是否已连接:
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;
}