C# 从ManagementObjectSearcher Win32_pPentity获取提供程序
我正在搜索我的USB到串行转换器。我有两个目标:C# 从ManagementObjectSearcher Win32_pPentity获取提供程序,c#,.net,serial-port,usb,win32com,C#,.net,Serial Port,Usb,Win32com,我正在搜索我的USB到串行转换器。我有两个目标: 获取USB端口号 获取提供者 下面是我的设备管理器的屏幕截图 现在,我的座右铭是识别由ATEN提供的USB到串行网桥,但是我不是专门寻找ATEN的东西,只是我需要知道如何查询ManagementObject 因为如果我查找标题,对于某些系统,它是USB到串行网桥,对于某些系统,它是USB到串行通信端口,对于其他一些系统,它可能会变成其他东西。永不改变的是提供程序-“ATEN” 以下是我的代码: 现在我在下面做了一些事情,从**标题**获取/提取
ATEN
提供的USB到串行网桥,但是我不是专门寻找ATEN的东西,只是我需要知道如何查询ManagementObject
因为如果我查找标题
,对于某些系统,它是USB到串行网桥
,对于某些系统,它是USB到串行通信端口
,对于其他一些系统,它可能会变成其他东西。永不改变的是提供程序-“ATEN”
以下是我的代码:
现在我在下面做了一些事情,从**标题**获取/提取数据
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE Caption like '%ATEN USB to Serial Bridge%'"))
{
foreach (ManagementObject queryObj in searcher.Get())
{
foreach (PropertyData prop in queryObj.Properties)
{
listBox1.Items.Add(String.Format("{0}: {1}", prop.Name, prop.Value));
}
string s = queryObj["Caption"].ToString();
// Here under i play with the string `s` to get the `CCOM21`
int start = s.IndexOf("(");
int end = s.IndexOf(")");
result = s.Substring(start, end - start);
result = result.Replace("(", "");
list.Items.Add(result);
}
}
我知道这不是正确的方法,但我知道如何通过查询ManagementObject获得COM21
端口和Provider-ATEN
。或者有没有其他直接的方法可以做到这一点