最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)獲取電腦中的端口號(hào)和硬件信息

 更新時(shí)間:2025年01月21日 08:52:09   作者:上位機(jī)付工  
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)獲取電腦中的端口號(hào)和硬件信息的相關(guān)方法,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下

我們經(jīng)常在使用一個(gè)串口軟件的時(shí)候,發(fā)現(xiàn)軟件中的端口號(hào)并不是普通的COM1,而是帶有硬件信息的。

那么如果我們使用C#編寫軟件時(shí)候,如何獲取到串口的硬件信息呢?

思路就是通過讀取設(shè)備管理器里的條目來實(shí)現(xiàn),我這里給大家封裝好了一個(gè)通用的方法。

        /// <summary>
        /// 獲取可用端口號(hào)
        /// </summary>
        /// <param name="usefullName">是否使用完全名稱</param>
        /// <returns>端口號(hào)集合</returns>
        public static string[] GetPortNames(bool usefullName = false)
        {
            List<string> result = new List<string>();
            try
            {
                //搜索設(shè)備管理器中的所有條目
                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
                                {
                                    //獲取端口號(hào)
                                    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);            
}

如果我們不需要獲取帶硬件信息的端口號(hào)集合,那么usefullname傳入False,默認(rèn)參數(shù)是False,不填的話,就是False。

到此這篇關(guān)于C#實(shí)現(xiàn)獲取電腦中的端口號(hào)和硬件信息的文章就介紹到這了,更多相關(guān)C#獲取電腦信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

    本文主要介紹了C#中的Mixin的具體用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#中BackgroundWorker類用法總結(jié)

    C#中BackgroundWorker類用法總結(jié)

    本文詳細(xì)講解了C#中BackgroundWorker類用法總結(jié),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C#中nameof的實(shí)現(xiàn)實(shí)例

    C#中nameof的實(shí)現(xiàn)實(shí)例

    本文主要介紹了C#中nameof的實(shí)現(xiàn)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • C#實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架詳解

    C#實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架詳解

    這篇文章主要給大家介紹了關(guān)于利用C#如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起來看看吧
    2018-07-07
  • Entity?Framework配置關(guān)系

    Entity?Framework配置關(guān)系

    這篇文章介紹了Entity?Framework配置關(guān)系的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C# 打印網(wǎng)頁不顯示頁眉頁腳的實(shí)現(xiàn)方法

    C# 打印網(wǎng)頁不顯示頁眉頁腳的實(shí)現(xiàn)方法

    這篇文章主要介紹了C# 打印網(wǎng)頁不顯示頁眉頁腳的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • C#-WinForm跨線程修改UI界面的示例

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

    這篇文章主要介紹了C#-WinForm跨線程修改UI界面的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#使用Equals()方法比較兩個(gè)對(duì)象是否相等的方法

    C#使用Equals()方法比較兩個(gè)對(duì)象是否相等的方法

    這篇文章主要介紹了C#使用Equals()方法比較兩個(gè)對(duì)象是否相等的方法,涉及C#操作對(duì)象的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#實(shí)現(xiàn)簡(jiǎn)單播放mp3的方法

    C#實(shí)現(xiàn)簡(jiǎn)單播放mp3的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)簡(jiǎn)單播放mp3的方法,涉及C#播放多媒體文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 基于TCP異步Socket模型的介紹

    基于TCP異步Socket模型的介紹

    本篇文章小編將為大家介紹,基于TCP異步Socket模型的介紹,需要的朋友參考下
    2013-04-04

最新評(píng)論

土默特右旗| 葵青区| 新安县| 灵宝市| 襄垣县| 思茅市| 娄烦县| 青河县| 牟定县| 上蔡县| 宣化县| 澜沧| 黑山县| 锦州市| 广饶县| 石屏县| 吉林市| 龙海市| 会东县| 苏尼特左旗| 嘉善县| 平和县| 合川市| 汕尾市| 长乐市| 雷州市| 陇南市| 曲靖市| 邢台市| 临武县| 喜德县| 苏尼特左旗| 门头沟区| 望都县| 民权县| 沙坪坝区| 山东| 三门县| 乌兰浩特市| 那坡县| 高淳县|