c# - 查询连接的 USB 设备 GUID 时出现 System.Management 异常
问题描述
我需要一个与我的 C# .NET Windows 桌面应用程序的某个 VID/PID 匹配的已连接 WinUsb 设备的 GUID 列表。我尝试从此处所述的所有已连接 USB 设备的列表开始。
我得到以下运行时异常:
System.Management.ManagementException: 'Invalid class '
This exception was originally thrown at this call stack:
System.Management.ManagementException.ThrowWithExtendedInfo(System.Management.ManagementStatus)
System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
这是我的(简化的)代码:
private static List<Guid> GetWinUsbDevices()
{
List<Guid> deviceList = new List<Guid>();
using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBControllerDevice"))
using (ManagementObjectCollection collection = searcher.Get())
foreach (var device in collection)
{
// Check device VID/PID
// Read device GUID
deviceList.Add(new Guid());
}
return deviceList;
}
foreach
循环开始时抛出异常(特别是当它命中时in
)。
我也试过ManagementClass.GetInstances()
了,结果相似。
解决方案
推荐阅读
- aws-lambda - Should I create database update function outside of amplify?
- javascript - PostMan 使用 Laravel 获取 JWT 的预请求脚本
- c# - 分离 NpgsqlConnection 的关注点
- wcf - 如何将 Application Insights 添加到 ILogger
将 Unity DI 用于 WCF 服务 - c++ - C++20:从给定的可变参数类型生成类型
- html - 如何获取 REST API 数据并在 html 页面中显示
- doctrine-orm - 原则防止数据库中不存在记录的 OneToOne 关联错误
- c# - 如何创建原始文件以获取字节数组?
- data-structures - 如何以定义明确的非自定义格式编写小数
- wordpress - Wordpress 多站点 Htaccess 覆盖