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

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

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

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

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

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

        /// <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,默認參數(shù)是False,不填的話,就是False。

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

相關(guān)文章

最新評論