公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#如何獲取計算機或硬件信息

admin
2024年6月7日 9:58 本文熱度 1278

引言

在項目開發過程中,偶爾需要獲取計算機環境信息,如操作系統、部分硬件等。根據獲取的信息配置不同邏輯、提供硬件選擇(如打印機、攝像頭等)。本文將介紹幾個常用的獲取計算機或硬件信息方式。

系統

1、獲取操作系統信息

/// <summary>/// 操作系統信息/// </summary>/// <returns></returns>public void GetOperatingSystem(ref string operatingSystem,ref string osArchitecture){    try    {        using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("select * from Win32_OperatingSystem"))        {            foreach (ManagementObject ManagementObject in managementObjectSearcher.Get())            {                operatingSystem = Convert.ToString(ManagementObject["Caption"]);                osArchitecture = Convert.ToString(ManagementObject["OSArchitecture"]);                break;            }        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }}

硬件

1、獲取打印機

#region 方式一 使用 ManagementObject 類獲取/// <summary>/// 獲取打印機/// </summary>public List<string> GetPrinters(){    List<string> printerDevices = new List<string>();    try    {        using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"))        {            foreach (var device in searcher.Get())            {                if (device["Name"] != null)                {                    printerDevices.Add(Convert.ToString(device["Name"]));                }            }        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return printerDevices;}#endregion
#region 方式二 使用 Printing 獲取/// <summary>/// 獲取打印機/// </summary>public List<string> GetInstalledPrinters(){    List<string> printerDevices = new List<string>();    try    {        foreach (string printerName in PrinterSettings.InstalledPrinters)        {            if (!printerDevices.Contains(printerName))            {                printerDevices.Add(printerName);            }        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return printerDevices;}#endregion

2、獲取攝像頭

/// <summary>/// 獲取攝像頭設備/// </summary>public List<string> GetCameras(){    List<string> cameraDevices = new List<string>();    try    {        using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Image' OR PNPClass = 'Camera')"))        {            foreach (var device in searcher.Get())            {                if (device["Caption"] != null)                {                    cameraDevices.Add(Convert.ToString(device["Caption"]));                }            }        }    }    catch(Exception exception)    {        throw new Exception(exception.Message);    }    return cameraDevices;}

3、獲取硬盤

/// <summary>/// 硬盤信息/// </summary>public List<DiskDrive> GetDiskDrive(){    List<DiskDrive> diskDevices = new List<DiskDrive>();    try    {        using (ManagementClass managementClass = new ManagementClass("Win32_DiskDrive"))        {            ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();            foreach (ManagementObject managementObject in managementObjectCollection)            {                DiskDrive diskDrive = new DiskDrive();                diskDrive.SerialNumber = Convert.ToString(managementObject.Properties["SerialNumber"].Value);                diskDrive.SerialNumber = Convert.ToString(managementObject.Properties["Model"].Value);                diskDrive.SerialNumber = Convert.ToString(managementObject.Properties["Size"].Value);                diskDevices.Add(diskDrive);            }        }       }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return diskDevices;}

4、獲取計算機主板

/// <summary>/// 主板信息/// </summary>public List<BaseBoard> GetMainBoardInfo(){    List<BaseBoard> baseBoardDevices = new List<BaseBoard>();    try    {        using (ManagementClass managementClass = new ManagementClass("Win32_BaseBoard"))        {            ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();            foreach (ManagementObject managementObject in managementObjectCollection)            {                BaseBoard diskDrive = new BaseBoard();                diskDrive.SerialNumber = Convert.ToString(managementObject.Properties["SerialNumber"].Value);                diskDrive.Product = Convert.ToString(managementObject.Properties["Product"].Value);                diskDrive.Version = Convert.ToString(managementObject.Properties["Version"].Value);                diskDrive.Manufacturer = Convert.ToString(managementObject.Properties["Manufacturer"].Value);                baseBoardDevices.Add(diskDrive);            }        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return baseBoardDevices;}

5、獲取網絡地址

/// <summary>/// 獲取網絡地址/// </summary>/// <returns></returns>public List<string> GetIPAddress(){    List<string> iPAddressList = new List<string>();    try    {        IPAddress[] allIPAddresses = Dns.GetHostAddresses(Dns.GetHostName());        foreach (IPAddress iPAddress in allIPAddresses)        {            if (iPAddress.AddressFamily.Equals(AddressFamily.InterNetwork))            {                // IP4                iPAddressList.Add(iPAddress.ToString());                continue;            }        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return iPAddressList;}

6、獲取物理地址

#region 方式一 使用 NetworkInterface 類獲取public List<string> GetPhysicalAddress(){    List<string> physicalAddressList = new List<string>();    try    {        NetworkInterface[] allNetworkInterface = NetworkInterface.GetAllNetworkInterfaces();        string result = string.Empty;        foreach (NetworkInterface networkInterface in allNetworkInterface)        {            result = networkInterface.GetPhysicalAddress().ToString();            result = result.Insert(2, ":");            result = result.Insert(5, ":");            result = result.Insert(8, ":");            result = result.Insert(11, ":");            result = result.Insert(14, ":");            physicalAddressList.Add(result);        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return physicalAddressList;}#endregion#region 方式二 使用 ManagementObject 類獲取public static List<string> GetMacAddress(){    List<string> physicalAddressList = new List<string>();    try    {        using (ManagementClass managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration"))        {            ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();            foreach (ManagementObject managementObject in managementObjectCollection)            {                if (managementObject["IPEnabled"] != null && managementObject["MacAddress"] != null)                {                    if ("true".Equals(Convert.ToString(managementObject["IPEnabled"]),StringComparison.OrdinalIgnoreCase))                    {                        physicalAddressList.Add(Convert.ToString(managementObject["MacAddress"]));                    }                }            }        }       }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return physicalAddressList;}

7、獲取處理器信息

/// <summary>/// 處理器信息/// </summary>/// <returns></returns>public string GetCPUInfo(){    StringBuilder stringBuilder = new StringBuilder();    try    {        using (ManagementObjectCollection.ManagementObjectEnumerator searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor").Get().GetEnumerator())        {            if (searcher.MoveNext())            {                ManagementObject managementObject = (ManagementObject)searcher.Current;                stringBuilder.Append(managementObject.GetPropertyValue("Name").ToString());                stringBuilder.Append(",");                stringBuilder.Append(managementObject.GetPropertyValue("CurrentClockSpeed").ToString());                stringBuilder.Append(" Mhz,");                stringBuilder.Append(Environment.ProcessorCount.ToString());                stringBuilder.Append("核心");            }        }    }    catch (Exception exception)    {        throw new Exception(exception.Message);    }    return stringBuilder.ToString();}

小結

以上是一些較常獲取計算機硬件信息或系統信息。還有很多信息可以使用C#獲取,這里不一一列舉。如有不到之處,請多多包涵。大家可以留言,提供一些你知道的方法。


該文章在 2024/6/8 18:09:26 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产成人精品福利网站人 | 91高清 | 国产区免费在线观看 | 成人精品午夜在线播放 | 国产夜色精品一区二区 | 精品国产一区二区三区久久狼黑人 | 国产精品成人午夜电影 | 国产午夜精品理论 | 国产成人av乱码在线观看 | 国产视频在线观看福利 | 国产a级一级淫片免费观看 国产a级作爱 | 国产精品午夜理论片在线播放 | 精品无码中文字幕在线 | 高清无码一区二区在线观看吞精 | 国产精品毛多多 | 国产91司机在线观看 | 国产成人一区二区三区毛片 | 国产精品大陆高清 | 国产精品熟女视 | 精品麻豆一区二区 | 国产黄a三级三级三级 | 成人在线日韩 | 国产精品爆乳奶水无码视频 | 国产精品无码久久 | 99久久国产综合精品女同图片 | 国产熟睡乱子伦午夜视频网 | 精品熟女视频一区二区 | 精品精品国产自在久久高清 | 国产成人无码免费视频麻豆 | 加勒比无码 | 精品亚洲av无码专区毛片 | 成人午夜看黄在线尤物成人 | 国产午夜精品一区二区三区四 | 国产亚洲欧美日韩在线观看 | 国产中文中文娱乐无码 | 国产精品女同一区二区久久 | 国产av国片精品有毛 | 国产亚洲欧美在线观看一区二区 | 国av在线观看 | 国产欧美日韩视频一区在线 | 国产真人一级a爱视频免费看 |