从ManagementObjectSearcher Win32_PnPEntity获取提供程序

时间:2013-12-06 05:45:42

标签: c# .net serial-port usb win32com

我正在寻找我的USB转串口转换器。我有两个目标:

  1. 获取USB端口号
  2. 获取提供商
  3. 下面是我的设备管理器

    的屏幕截图

    enter image description here

    现在我的座右铭是识别由ATEN提供的USB转串口桥,但我不是专门寻找ATEN的东西,只是我需要知道如何查询ManagementObject

    因为如果我为某些系统查找Caption,那么它是ATEN USB to Serial Bridge,对于某些系统,它是USB-to-Serial Comm. Port,对于其他系统,它可能会成为其他系统。永不改变的是Provider - "ATEN"

    以下是我的代码:

    Now I have did something here under to get/extract data from **CAPTION**

    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。或者还有其他直接的方法来做到这一点。

0 个答案:

没有答案