C#枚举所有串口COM
来源:互联网 发布:睡了兄弟的女朋友知乎 编辑:程序博客网 时间:2024/05/16 08:39
在实际项目中,如需都COM进行操作,往往需要枚举当前电脑中可用的所有串口COM。
我们第一想到的就是SerialPort.GetPortNames()方法。但这种方法有个缺陷那就是不能罗列那些通过USB连接虚拟出来的COM口。
本人在实际工作中的解决方案如下(关键部分)。
//Because Win32_SerialPort can't find the virtual COM ports, use Win32_PnPEntity hereusing (var searcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE Status='OK'")){ foreach (var queryObj in searcher.Get()) { ComPortInfo comPortInfo; if (TryParseComPortInfo(queryObj, out comPortInfo)) _comPortInfoList.Add(comPortInfo); }}
private static bool TryParseComPortInfo(ManagementBaseObject queryObj, out ComPortInfo comPortInfo){ comPortInfo = null; var captionPropertyValue = queryObj["Caption"] as string; if (string.IsNullOrWhiteSpace(captionPropertyValue)) return false; var portNumber = 0; if (!TryParsePortNumber(captionPropertyValue, out portNumber)) return false; comPortInfo = new ComPortInfo { PortName = PortInfoBase.ToPortName(portNumber), PortNumber = portNumber, Description = queryObj["Description"] as string, DeviceId = queryObj["DeviceID"] as string, Manufacturer = queryObj["Manufacturer"] as string }; return true;}
如果你在实际项目也遇到类似的问题,希望都你有所帮助。
阅读全文
0 0
- C#枚举所有串口COM
- 如何枚举系统COM串口
- 枚举所有串口,并自动识别硬件变动
- C#获取所有串口号
- C#枚举所有的窗体
- c#枚举电脑上的串口号
- C# 获取本机的COM串口
- 串口编程-枚举遍历串口、获取PC所有串口名称、遍历注册表项、RegEnumValue用法
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#枚举系统安装的所有打印机
- C#遍历枚举类型的所有元素
- 枚举串口
- 枚举串口
- 枚举串口
- 枚举串口
- MATLAB使用备注(二)
- 在linux下挂载、更新与定制硬盘
- leetcode:Divide Two Integers + …
- LINUXmint18.2添加国内源以及安装各种流行软件(网易云音乐,搜狗,谷歌浏览器,virtualbox虚拟机)
- leetcode:Next Permutation + Lon…
- C#枚举所有串口COM
- 数据库的锁表和解锁操作
- leetcode:Fraction to Recurring …
- leetcode:Single Number123 …
- leetcode:Linked List Random Node…
- leetcode:Shuffle an Array + Miss…
- leetcode:Integer to Roman + Fin…
- finetune入门,如何用已有的caffem…
- 009-logback中configuration的logger和root子节点