C#實(shí)現(xiàn)獲取電腦中的端口號(hào)和硬件信息
我們經(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# ImageList控件的使用技巧,需要的朋友可以參考下2016-06-06Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放
這篇文章主要為大家詳細(xì)介紹了Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格
這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03VS2019下安裝和破解?DevExpress?19.2?插件的詳細(xì)教程
這篇文章主要介紹了VS2019?安裝并破解?DevExpress?19.2?插件的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03C#自定義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