繁体   English   中英

在.NET中获取连接的USB设备的型号名称

[英]Getting the model name of a connected USB device in .NET

在我的WinForms应用程序中,我想获取已连接的USB对象的列表,然后获取那些已连接的USB设备的模型属性,因为我需要能够告诉用户何时它们已连接某个USB设备。

任何人都可以通过WMI或其他方式共享一种方法,以获取已连接设备的列表并获取这些设备的模型属性吗? 我已经从有关使用WMI获取设备信息的问题中修改了一些代码。 下面的代码工作正常,但是在以人类可以理解的方式识别设备时,获得的参数(“ DeviceID”,“ PNPDeviceID”等)根本没有用,我也不知道如何获取模型即在设备和打印机如图所见财产这里

public static List<USBDeviceInfo> GetUSBDevices(){

    List<USBDeviceInfo> devices = new List<USBDeviceInfo>();

    ManagementObjectCollection collection;

    using (var searcher = new ManagementObjectSearcher(@"Select * From 
              Win32_USBControllerDevice")) collection = searcher.Get();

    foreach (var device in collection)
            {
            devices.Add(new USBDeviceInfo(
                (string)device.GetPropertyValue("DeviceID"),
                (string)device.GetPropertyValue("PNPDeviceID"),
                (string)device.GetPropertyValue("Description")));
             }

    collection.Dispose();
    return devices; 
}

使用课程

public class USBDeviceInfo {
    public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
    {
    this.DeviceID = deviceID;
    this.PnpDeviceID = pnpDeviceID;
    this.Description = description;
    }

    public string DeviceID { get; private set; }
    public string PnpDeviceID { get; private set; }
    public string Description { get; private set; }
    }
}

我想发表这篇文章,以防万一我缺少针对我的特定问题的简单解决方案。 我也现在试图扭转工程师USB查看阿拉这个问题 ,因为USB观点得到我需要某种方式的信息。

作为记录,我在Visual Studio 2015中使用C#。

通过变通,我能够实现所需的顶级功能。 我确定了返回的DeviceID字符串的一部分,这对于我的应用程序所需要的RFID扫描仪品牌来说是唯一的。

我解析了返回的deviceID字符串,并检查是否存在该唯一值,并相应地更新了我的应用程序以反映这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM