C#动态获取本机可用串口的方式

记得当时在学校的时候实现上位机的时候总是需要手动输入串口号,一般方式是“我的电脑”---- 右键-“管理” ---- “设备管理器” ---- “端口(COM和LPT)”,通过这种方式查看当前的串口号,然后输入到上位机对应的位置,然后才可以完成一般的连接。但是最近写桌面应用程序觉得这样有点麻烦,所以想有什么方法可以自动获取对应的端口号,自动输入,完成连接,毕竟对于一些外行的人来说,并不知道怎么去查看端口号来填写,所以做到最简单的使用是很重要的。

在网上找到获取当前串口的方式,因为我也是才开始接触windows开发,边走边学的方式,对于这样的实现做一个记录:

  • 实现方式一:
      //获取串口列表的方法
        private void GetSerialPort()   //获取串口列表                                             
        {
            RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");
            if (keyCom != null)
            {
                string[] sSubKeys = keyCom.GetValueNames();
                foreach (string sName in sSubKeys)
                {
                    string sValue = (string)keyCom.GetValue(sName);

                    SerialPortText.Text = sValue;
                }
            }
        }
  • 实现方式二:

另一种比较简单的,直接通过SerialPort对象获得:

string[] ports = System.IO.Ports.SerialPort.GetPortNames();

在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信。

posted @ 2018-02-24 10:57  #Skye  阅读(2977)  评论(0编辑  收藏  举报