c# 獲取操作系統的硬件信息


c# 獲取系統本身硬件的信息

需要添加 System.Management 程序集

  1. 獲取操作系統名稱
ManagementClass manag = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection managCollection = manag.GetInstances();
foreach (ManagementObject m in managCollection)
{
    Console.WriteLine(m["Name"].ToString();
    
break;
}

  2. 獲取CPU信息

ManagementClass mcCPU = new ManagementClass("Win32_Processor");
ManagementObjectCollection mocCPU = mcCPU.GetInstances();
foreach (ManagementObject m in mocCPU)
{
       Console.WriteLine(m["Name"].ToString());
       break;
}

  3. 獲取CPU核心數量

int coreCount = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor ").Get())
{
       coreCount += int.Parse(item["NumberOfCores"].ToString());
}
Console.WriteLine(coreCount.ToString() + "");

  4. 獲取系統內存大小

ManagementObjectSearcher searcher = new ManagementObjectSearcher();   //用於查詢一些如系統信息的管理對象
searcher.Query = new SelectQuery("Win32_PhysicalMemory", "", new string[] { "Capacity" });//設置查詢條件
ManagementObjectCollection collection = searcher.Get();   //獲取內存容量 
ManagementObjectCollection.ManagementObjectEnumerator em = collection.GetEnumerator();
long capacity = 0;
while (em.MoveNext())
{
    ManagementBaseObject baseObj = em.Current;
    if (baseObj.Properties["Capacity"].Value != null)
    {
        capacity += long.Parse(baseObj.Properties["Capacity"].Value.ToString());
    }
}
Console.WriteLine(capacity / 1024 / 1024 / 1024 + "GB");

  4. 獲取硬盤空間

System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
long totalFreeSpace = 0;
long totalDiskSize = 0;
foreach (var drive in drives)
{
    if (drive.IsReady)  //判斷代碼運行時 磁盤是可操作作態 
    {
        totalFreeSpace += drive.AvailableFreeSpace;
        totalDiskSize += drive.TotalSize;
    }
}
Console.WriteLine(string.Format("總容量:{0} 剩余:{1}", totalDiskSize / 1024 / 1024 / 1024 + "GB", totalFreeSpace / 1024 / 1024 / 1024 + "GB"));

  5. 獲取屏幕分辨率

ManagementClass manage = new ManagementClass("Win32_DesktopMonitor");
ManagementObjectCollection manageCollection = manage.GetInstances();
foreach (ManagementObject m in manageCollection)
{
    Console.WriteLine(m["ScreenWidth"].ToString() + "*" + m["ScreenHeight"].ToString());
    break;
}

  6. 獲取顯卡芯片名稱 與 顯存大小

ManagementClass manage = new ManagementClass("Win32_VideoController");
ManagementObjectCollection manageCollection = manage.GetInstances();
foreach (ManagementObject m in manageCollection)
{
    Console.WriteLine(m["VideoProcessor"].ToString().Replace("Family", ""));
    Console.WriteLine((Convert.ToInt64(m["AdapterRAM"]) / 1024 / 1024 / 1024) + "GB" );
    break;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM