繁体   English   中英

使用VisualStudio 2013 C#列出详细的COM端口名称

[英]Listing of detailed COM port names using VisualStudio 2013 C#

我想列出带有详细名称的活动COM端口(例如在Windows设备管理器中)。 我正在使用此代码,并且可以运行,但是速度很慢。 最多需要45秒才能获得5个COM端口的列表! 我在这里做错什么了吗,或者有更快的方法吗? 我知道有很多关于此的帖子,但是我还没有找到正确的答案。

    private void UpdateSerialPorts(RichTextBox _txtBox)
    {

        foreach (string portName in System.IO.Ports.SerialPort.GetPortNames())
        {
            string query = String.Format("SELECT * FROM Win32_PnPEntity WHERE Caption LIKE '%{0}%'", portName);
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", query);
            ManagementObjectCollection coll = searcher.Get();
            if (coll.Count > 0)
            {
                foreach (ManagementBaseObject collObj in coll)
                {
                    ManagementBaseObject obj = collObj;
                    _txtBox.AppendText(portName + " " + obj.GetPropertyValue("Caption").ToString() + "\r\n");
                }
            }
            else
            {
                _txtBox.AppendText(new SerialPort(portName).ToString() + "\r\n");
            }
        }
    }

暂无
暂无

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

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