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类,该类主要实现串口数据通信。