天天看點

C#擷取CPU序列号/網卡MAC位址/硬碟序列号

C#擷取CPU序列号代碼

windows 管理規範 (wmi) 是可伸縮的系統管理結構,它采用一個統一的、基于标準的、可擴充的面向對象接口。wmi 為您提供與系統管理資訊和基礎 wmi api 互動的标準方法。wmi 主要由系統管理應用程式開發人員和管理者用來通路和作業系統管理資訊。

wmi 可用于生成組織和管理系統資訊的工具,使管理者或系統管理人員能夠更密切地監視系統活動。例如,可以使用 wmi 開發一個應用程式,用于在 web 伺服器崩潰時呼叫管理者。

将 wmi 與 .net 架構一起使用

wmi 提供了大量的規範以便為許多高端應用程式(例如,microsoft exchange、microsoft sql server 和 microsoft internet 資訊服務 (iis))實作幾乎任何管理任務。管理者可以執行下列任務:

監視應用程式的運作狀況。

檢測瓶頸或故障。

管理和配置應用程式。

查詢應用程式資料(使用對象關系的周遊和查詢)。

執行無縫的本地或遠端管理操作。

wmi 結構由以下三層組成:

用戶端

使用 wmi 執行操作(例如,讀取管理詳細資訊、配置系統和預訂事件)的軟體元件。

對象管理器

提供程式與用戶端之間的中間裝置,它提供一些關鍵服務,如标準事件釋出和預訂、事件篩選、查詢引擎等。

提供程式

軟體元件,它們捕獲實時資料并将其傳回到用戶端應用程式,處理來自用戶端的方法調用并将用戶端連結到所管理的基礎結構。

通過定義完善的架構向用戶端和應用程式無縫地提供了資料和事件以及配置系統的能力。在 .net 架構中,system.management 命名空間提供了用于周遊 wmi 架構的公共類。

除了 .net 架構,還需要在計算機上安裝 wmi 才能使用該命名空間中的管理功能。如果使用的是 windows millennium edition、windows 2000 或 windows xp,那麼已經安裝了 wmi。否則,将需要從 msdn 下載下傳 wmi。

< system.management>

system.management 命名空間是 .net 架構中的 wmi 命名空間。此命名空間包括下列支援 wmi 操作的第一級類對象:

managementobject 或 managementclass:分别為單個管理對象或類。

managementobjectsearcher:用于根據指定的查詢或枚舉檢索 managementobject 或 managementclass 對象的集合。

managementeventwatcher:用于預訂來自 wmi 的事件通知。

managementquery:用作所有查詢類的基礎。

system.management 類的使用編碼範例對 .net 架構環境很适合,并且 wmi 在任何适當的時候均使用标準基架構。例如,wmi 廣泛利用 .net 集合類并使用推薦的編碼模式,如 .net 異步操作的“委托”模式。是以,使用 .net 架構的開發人員可以使用他們的目前技能通路有關計算機或應用程式的管理資訊。

擷取cpu序列号代碼

string cpuinfo = "";//cpu序列号

managementclass cimobject = new managementclass("win32_processor");

managementobjectcollection moc = cimobject.getinstances();

foreach(managementobject mo in moc)

{

cpuinfo = mo.properties["processorid"].value.tostring();

console.writeline(cpuinfo);

console.readline();

}

擷取網卡硬體位址

using system.management;

...

managementclass mc = new managementclass("win32_networkadapterconfiguration");

managementobjectcollection moc = mc.getinstances();

if((bool)mo["ipenabled"] == true)

console.writeline("mac address\t{0}", mo["macaddress"].tostring());

mo.dispose();

擷取硬碟id

string hdid;

managementclass cimobject = new managementclass("win32_diskdrive");

hdid = (string)mo.properties["model"].value;

messagebox.show(hdid );

本文轉自94cool部落格園部落格,原文連結:http://www.cnblogs.com/94cool/archive/2010/04/15/1712782.html,如需轉載請自行聯系原作者