C#獲取CPU等硬件ID

System.Management命名空間提供對大量管理信息和管理事件集合的訪問,這些信息和事件是與根據 Windows 管理規範 (WMI) 結構對系統、設備和應用程序設置檢測點有關的。應用程序和服務可以使用從 ManagementObjectSearcher 和 ManagementQuery 派生的類,查詢感興趣的管理信息(例如在磁盤上還剩多少可用空間、當前 CPU 利用率是多少、某一應用程序正連接到哪一數據庫等等);或者應用程序和服務可以使用 ManagementEventWatcher 類預訂各種管理事件。這些可訪問的數據可以來自分佈式環境中託管的和非託管的組件。

首先添加對System.Management類庫的引用。然後添加下述代碼,就可獲得CPU、主板和硬盤等的編號。

1,獲取CPU編號

System.Management.ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
    MessageBox.Show(mo["processorid"].ToString());

}

2,獲取主板ID

System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
 foreach (ManagementObject mo in searcher.Get())
 {
       MessageBox.Show( mo["SerialNumber"].ToString().Trim());

}

或者:

System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_BaseBoard");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mx in moc)
 {
     MessageBox.Show( mx.Properties["SerialNumber"].Value.ToString());

}

3,獲取硬盤ID

System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_DiskDrive");
 ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
     MessageBox.Show(mo.Properties["Model"].Value.ToString());

}

4,獲取網卡地址

System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
 ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{

     if((bool)mo["IPEnabled"] == true)
     MessageBox.Show(mo["MacAddress"].ToString());

     mo.Dispose();

}

5,獲取內存信息

System.Management.ManagementClass mcMemory = new System.Management.ManagementClass("Win32_OperatingSystem");

ManagementObjectCollection mocMemory = mcMemory.GetInstances();

foreach (ManagementObject mo in mocMemory)

{

if (mo.Properties["TotalVisibleMemorySize"].Value != null)

    {

        MessageBox.Show(mo.Properties["TotalVisibleMemorySize"].Value.ToString());

       }

}



發佈了63 篇原創文章 · 獲贊 21 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章