要使用串行端口名称填充组合框,开发人员经常使用 SerialPort.GetPortNames()。然而,用户表示还需要包含端口描述。以下是实现此目的的方法:
<code class="csharp">using System; using System.Management; class Program { static void Main(string[] args) { var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE Caption LIKE '%(COM%'"); var portnames = SerialPort.GetPortNames(); var ports = searcher.Get().Cast<ManagementBaseObject>().ToList() .Select(p => p["Caption"].ToString()); var portList = portnames.Select(n => n + " - " + ports.FirstOrDefault(s => s.Contains(n))).ToList(); foreach (string s in portList) { Console.WriteLine(s); } } }</code>
通过利用 WMI(Windows 管理规范),此解决方案查询标题中包含“COM”的 PNP(即插即用)实体。然后显示端口和描述的结果列表,或者可以根据需要将其加载到组合框中。
以上是如何在 C# 中检索串口信息(包括描述)?的详细内容。更多信息请关注PHP中文网其他相关文章!