提供的代码成功枚举 COM 端口,但缺乏检索端口描述(如设备管理器中可见的端口描述)的功能。对于全面的解决方案,建议采用以下方法:
<code class="csharp">using (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>
上述代码利用 Windows Management Instrumentation (WMI) 收集有关每个串行端口的详细信息。 ManagementObjectSearcher 配置为查询特定 COM 端口信息。
SerialPort.GetPortNames() 方法返回端口名称数组。然后,使用这些名称来过滤 WMI 查询并检索相应的端口描述。
生成的列表 portList 包含端口名称和描述的组合。通过迭代此列表,您可以根据需要显示信息,例如,在组合框中为用户提供可用串行端口的描述性列表。
以上是如何在 C# 中检索串行端口描述?的详细内容。更多信息请关注PHP中文网其他相关文章!