欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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#實(shí)現(xiàn)閃動(dòng)托盤圖標(biāo)效果的方法

    C#實(shí)現(xiàn)閃動(dòng)托盤圖標(biāo)效果的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)閃動(dòng)托盤圖標(biāo)效果的方法,涉及C# ImageList控件的使用技巧,需要的朋友可以參考下
    2016-06-06
  • Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放

    Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放

    這篇文章主要為大家詳細(xì)介紹了Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C#中的委托和事件

    C#中的委托和事件

    這篇文章介紹了C#中的委托和事件,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#利用waveIn實(shí)現(xiàn)聲音采集

    C#利用waveIn實(shí)現(xiàn)聲音采集

    wimm這種基于win32 api的庫,完全可以直接用C#去調(diào)用,將依賴減少到最小,所以本文小編就來和大家介紹一下C#如何使用waveIn實(shí)現(xiàn)聲音采集,感興趣的小伙伴可以了解下
    2023-10-10
  • C#實(shí)現(xiàn)批量壓縮和解壓縮的示例代碼

    C#實(shí)現(xiàn)批量壓縮和解壓縮的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)批量壓縮和解壓縮的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格

    C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格

    這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 輕松學(xué)習(xí)C#的哈希表

    輕松學(xué)習(xí)C#的哈希表

    輕松學(xué)習(xí)C#的哈希表,對(duì)C#的哈希表感興趣的朋友可以參考本篇文章,幫助大家更靈活的運(yùn)用C#的哈希表
    2015-11-11
  • VS2019下安裝和破解?DevExpress?19.2?插件的詳細(xì)教程

    VS2019下安裝和破解?DevExpress?19.2?插件的詳細(xì)教程

    這篇文章主要介紹了VS2019?安裝并破解?DevExpress?19.2?插件的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 使用接口實(shí)現(xiàn)多繼承的方法

    使用接口實(shí)現(xiàn)多繼承的方法

    下面小編就為大家分享一篇c#使用接口實(shí)現(xiàn)多繼承的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#自定義RSA加密解密及RSA簽名和驗(yàn)證類實(shí)例

    C#自定義RSA加密解密及RSA簽名和驗(yàn)證類實(shí)例

    這篇文章主要介紹了C#自定義RSA加密解密及RSA簽名和驗(yàn)證類,實(shí)例分析了C#實(shí)現(xiàn)RSA加密解密及RSA簽名和驗(yàn)證的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論