获取串口名称的方法(C#)

获取串口名称的方法(C#)

    • 第一种方法
    • 第二种方法

第一种方法

①需要使用到的命名空间:

using System.IO.Ports;
using Microsoft.Win32;  //RegistryKey 类
//官网的介绍: https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.win32.registrykey?redirectedfrom=MSDN&view=netframework-4.8

② 下面是获取串口名称的方法

void CheckSerialPort()
{
 RegistryKey tempRegist = RegistryKey .LocalMachine.OpenSubKey("HARDWARE").OpenSubKey("DEVICEMAP").OpenSubKey("SERIALCOMM");
             if (tempRegist != null && tempRegist .ValueCount > 0)
             { 
                  string[] tempRegistComs = tempRegist .GetValueNames();
                 cbPortItem.Items.Clear(); //清除Combox中的项
                foreach (string tempStrName in tempRegistComs )
                {
                    string tempCom = Convert.ToString(tempRegist .GetValue(tempStrName ));
                    cbPortOne.Items.Add(tempCom); //添加Com名称
                }
                if (cbPortOne.Items.Count > 0)
                {
                    cbPortOne.SelectedIndex = 0; //默认的索引
                }
             }
}

第二种方法

① 需要使用到的命名空间:

using System.IO.Ports;

② 添加Com名称到ComboBox

void SerialPortDetect() //串口检测
{
 cbPortItem.Items.Clear(); //清除Combox中的项
   try
   {
      cbPortItem.Items.AddRange(SerialPort.GetPortNames()); //添加项
       if (cbPortItem.Items.Count > 0)
        {
           cbPortOne.SelectedIndex = 0; //默认的索引
        }
    }
    catch (Exception ex)
    {
       MessageBox.Show(ex.Message);
    }
}

以上两种方法,都是检测本机有多少个COM口,然后将它加入到名字为cbPortOne的Combobox控件里面。

你可能感兴趣的:(C#)