狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

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

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

引言

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

系統

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