C#实现获取电脑中的端口号和硬件信息

 更新时间:2025年01月21日 08:52:09   作者:上位机付工  
这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下

我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。

那么如果我们使用C#编写软件时候,如何获取到串口的硬件信息呢?

思路就是通过读取设备管理器里的条目来实现,我这里给大家封装好了一个通用的方法。

        /// <summary>
        /// 获取可用端口号
        /// </summary>
        /// <param name="usefullName">是否使用完全名称</param>
        /// <returns>端口号集合</returns>
        public static string[] GetPortNames(bool usefullName = false)
        {
            List<string> result = new List<string>();
            try
            {
                //搜索设备管理器中的所有条目
                using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PnPEntity"))
                {
                    var hardInfos = searcher.Get();
                    foreach (var hardInfo in hardInfos)
                    {
                        if (hardInfo.Properties["Name"].Value != null)
                        {
                            string name = hardInfo.Properties["Name"].Value.ToString();
                            if (name.Contains("(COM") && name.EndsWith(")"))
                            {
                                if (usefullName)
                                {
                                    result.Add(name);
                                }
                                else
                                {
                                    //获取端口号
                                    string port = name.Substring(name.IndexOf('(') + 1, name.IndexOf(')') - name.IndexOf('(') - 1);
 
                                    //如果是虚拟串口
                                    if (name.Contains("->"))
                                    {
                                        result.Add(port.Split(new string[] { "->"}, StringSplitOptions.None)[0]);
                                    }
                                    //如果不是虚拟串口
                                    else
                                    {
                                        result.Add(port);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch
            {
                result = new List<string>();
            }
            return result.ToArray();
        }

如果我们需要获取带硬件信息,那么usefullname传入True即可。

string[] ports = GetPortNames(true);
foreach (var item in ports)            
{                
   Console.WriteLine(item);            
}

如果我们不需要获取带硬件信息的端口号集合,那么usefullname传入False,默认参数是False,不填的话,就是False。

到此这篇关于C#实现获取电脑中的端口号和硬件信息的文章就介绍到这了,更多相关C#获取电脑信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 聊聊C#中的Mixin的具体用法

    聊聊C#中的Mixin的具体用法

    本文主要介绍了C#中的Mixin的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C#中BackgroundWorker类用法总结

    C#中BackgroundWorker类用法总结

    本文详细讲解了C#中BackgroundWorker类用法总结,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C#中nameof的实现实例

    C#中nameof的实现实例

    本文主要介绍了C#中nameof的实现实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • C#实现一个简单实用的TXT文本操作及日志框架详解

    C#实现一个简单实用的TXT文本操作及日志框架详解

    这篇文章主要给大家介绍了关于利用C#如何实现一个简单实用的TXT文本操作及日志框架的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧
    2018-07-07
  • Entity Framework配置关系

    Entity Framework配置关系

    这篇文章介绍了Entity Framework配置关系的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# 打印网页不显示页眉页脚的实现方法

    C# 打印网页不显示页眉页脚的实现方法

    这篇文章主要介绍了C# 打印网页不显示页眉页脚的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • C#-WinForm跨线程修改UI界面的示例

    C#-WinForm跨线程修改UI界面的示例

    这篇文章主要介绍了C#-WinForm跨线程修改UI界面的示例,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#使用Equals()方法比较两个对象是否相等的方法

    C#使用Equals()方法比较两个对象是否相等的方法

    这篇文章主要介绍了C#使用Equals()方法比较两个对象是否相等的方法,涉及C#操作对象的相关技巧,需要的朋友可以参考下
    2015-04-04
  • C#实现简单播放mp3的方法

    C#实现简单播放mp3的方法

    这篇文章主要介绍了C#实现简单播放mp3的方法,涉及C#播放多媒体文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 基于TCP异步Socket模型的介绍

    基于TCP异步Socket模型的介绍

    本篇文章小编将为大家介绍,基于TCP异步Socket模型的介绍,需要的朋友参考下
    2013-04-04

最新评论