c# – 获取有关Windows和NET中已连接USB设备的所有可用信息
发布时间:2020-12-15 22:17:32 所属栏目:百科 来源:网络整理
导读:我已经在我的代码中实现了 SO question的解决方案,但我正在寻找来自连接的USB设备的更多信息. 我注意到在我的设备管理器中提供了更多的信息. 我特别想知道这些设备的制造商. 我不确定如何确定从SO question中看到的GetPropertyValue方法使用中可用的其他属性
我已经在我的代码中实现了
SO question的解决方案,但我正在寻找来自连接的USB设备的更多信息.
我注意到在我的设备管理器中提供了更多的信息. 我特别想知道这些设备的制造商. 我不确定如何确定从SO question中看到的GetPropertyValue方法使用中可用的其他属性.我在最后尝试了一些关键字,但它们都报告错误,所以我认为这不是可用的属性. 知道如何获取更多只有DeviceID,PnpDeviceID和Description的信息吗? 编辑:对于任何想知道这里的人来说,我会得到完整的属性列表和值.没有任何设备可以提供比我所知道的更多或更少(可能是转换为字符串?). Availability: Caption: USB Root Hub ClassCode: ConfigManagerErrorCode: 0 ConfigManagerUserConfig: False CreationClassName: Win32_USBHub CurrentAlternateSettings: CurrentConfigValue: Description: USB Root Hub DeviceID: USBROOT_HUB20######## ErrorCleared: ErrorDescription: GangSwitched: InstallDate: LastErrorCode: Name: USB Root Hub NumberOfConfigs: NumberOfPorts: PNPDeviceID: USBROOT_HUB204&########&0 PowerManagementCapabilities: PowerManagementSupported: ProtocolCode: Status: OK StatusInfo: SubclassCode: SystemCreationClassName: Win32_ComputerSystem SystemName: ASystemName USBVersion: 并且编辑了来自链接的SO答案的代码,但具有所有属性. public class USBDeviceInfo { public String Availability { get; set; } public String Caption { get; set; } public String ClassCode { get; set; } public UInt32 ConfigManagerErrorCode { get; set; } public Boolean ConfigManagerUserConfig { get; set; } public String CreationClassName { get; set; } public String CurrentAlternateSettings { get; set; } public String CurrentConfigValue { get; set; } public String Description { get; set; } public String DeviceID { get; set; } public String ErrorCleared { get; set; } public String ErrorDescription { get; set; } public String GangSwitched { get; set; } public String InstallDate { get; set; } public String LastErrorCode { get; set; } public String Name { get; set; } public String NumberOfConfigs { get; set; } public String NumberOfPorts { get; set; } public String PNPDeviceID { get; set; } public String PowerManagementCapabilities { get; set; } public String PowerManagementSupported { get; set; } public String ProtocolCode { get; set; } public String Status { get; set; } public String StatusInfo { get; set; } public String SubclassCode { get; set; } public String SystemCreationClassName { get; set; } public String SystemName { get; set; } public String USBVersion { get; set; } } public static List<USBDeviceInfo> GetUSBDevices() { ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"); ManagementObjectCollection collection = searcher.Get(); List<USBDeviceInfo> devices = new List<USBDeviceInfo>(); foreach (var device in collection) { USBDeviceInfo deviceInfo = new USBDeviceInfo(); deviceInfo.Availability = (String)device.GetPropertyValue("Availability"); deviceInfo.Caption = (String)device.GetPropertyValue("Caption"); deviceInfo.ClassCode = (String)device.GetPropertyValue("ClassCode"); deviceInfo.ConfigManagerErrorCode = (UInt32)device.GetPropertyValue("ConfigManagerErrorCode"); deviceInfo.ConfigManagerUserConfig = (Boolean)device.GetPropertyValue("ConfigManagerUserConfig"); deviceInfo.CreationClassName = (String)device.GetPropertyValue("CreationClassName"); deviceInfo.CurrentAlternateSettings = (String)device.GetPropertyValue("CurrentAlternateSettings"); deviceInfo.CurrentConfigValue = (String)device.GetPropertyValue("CurrentConfigValue"); deviceInfo.Description = (String)device.GetPropertyValue("Description"); deviceInfo.DeviceID = (String)device.GetPropertyValue("DeviceID"); deviceInfo.ErrorCleared = (String)device.GetPropertyValue("ErrorCleared"); deviceInfo.ErrorDescription = (String)device.GetPropertyValue("ErrorDescription"); deviceInfo.GangSwitched = (String)device.GetPropertyValue("GangSwitched"); deviceInfo.InstallDate = (String)device.GetPropertyValue("InstallDate"); deviceInfo.LastErrorCode = (String)device.GetPropertyValue("LastErrorCode"); deviceInfo.Name = (String)device.GetPropertyValue("Name"); deviceInfo.NumberOfConfigs = (String)device.GetPropertyValue("NumberOfConfigs"); deviceInfo.NumberOfPorts = (String)device.GetPropertyValue("NumberOfPorts"); deviceInfo.PNPDeviceID = (String)device.GetPropertyValue("PNPDeviceID"); deviceInfo.PowerManagementCapabilities = (String)device.GetPropertyValue("PowerManagementCapabilities"); deviceInfo.PowerManagementSupported = (String)device.GetPropertyValue("PowerManagementSupported"); deviceInfo.ProtocolCode = (String)device.GetPropertyValue("ProtocolCode"); deviceInfo.Status = (String)device.GetPropertyValue("Status"); deviceInfo.StatusInfo = (String)device.GetPropertyValue("StatusInfo"); deviceInfo.SubclassCode = (String)device.GetPropertyValue("SubclassCode"); deviceInfo.SystemCreationClassName = (String)device.GetPropertyValue("SystemCreationClassName"); deviceInfo.SystemName = (String)device.GetPropertyValue("SystemName"); deviceInfo.USBVersion = (String)device.GetPropertyValue("USBVersion"); devices.Add(deviceInfo); } collection.Dispose(); searcher.Dispose(); return devices; } 解决方法
Properties集合属性将包含您可以访问的所有属性.
https://msdn.microsoft.com/en-us/library/system.management.managementbaseobject.properties(v=vs.110).aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |