C# SerialPort.GetPortNames获取不到USB转串口号

C# SerialPort.GetPortNames获取不到USB转串口号

用C#自带的GetPortNames(),有些可能获取不到,例如USB转串口的。可以考虑用windows api实现

       //枚举系统中的串口
        private void EnumComportfromReg(ComboBox Combobox)
        {
            Combobox.Items.Clear();
            
            ///定义注册表子Path
            string strRegPath = @"Hardware\\DeviceMap\\SerialComm";
            ///创建两个RegistryKey类,一个将指向Root Path,另一个将指向子Path
            RegistryKey regRootKey;
            RegistryKey regSubKey;
            ///定义Root指向注册表HKEY_LOCAL_MACHINE节点
            regRootKey = Registry.LocalMachine;
            ///Registry枚举类提供了以下几种
            /*
            Registry.ClassesRoot-------------->指向注册表HKEY_CLASSES_ROOT节点
            Registry.CurrentConfig-------------->指向注册表HKEY_CURRENT_CONFIG节点
            Registry.CurrentUser-------------->指向注册表HKEY_CURRENT_USER节点
            Registry.DynData-------------->指向注册表HKEY_DYN_DATA节点(动态注册表数据)
            Registry.LocalMachine-------------->指向注册表HKEY_LOCAL_MACHINE节点
            Registry.PerformanceData-------------->指向注册表HKEY_PERFORMANCE_DATA节点
            Registry.Users-------------->指向注册表HKEY_USERS节点
            */
            regSubKey = regRootKey.OpenSubKey(strRegPath);
            string[] strCommList = regSubKey.GetValueNames();


            foreach (string VName in strCommList)
            {
                //向listbox1中添加字符串的名称和数据,数据是从rk对象中的GetValue(it)方法中得来的
                Combobox.Items.Add(regSubKey.GetValue(VName));
            }


            if (Combobox.Items.Count > 0)
                Combobox.SelectedIndex = 0;
            
            ///关闭
            regSubKey.Close();
            regRootKey.Close();   
                     
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值