欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#與WMI使用技巧集

 更新時(shí)間:2007年03月09日 00:00:00   作者:  

獲取CPU序列號(hào)代碼 
string cpuInfo = "";//cpu序列號(hào) 
   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(); 
   } 
獲取網(wǎng)卡硬件地址 
using System.Management; 
... 
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
ManagementObjectCollection moc = mc.GetInstances(); 
foreach(ManagementObject mo in moc) 

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"); 
ManagementObjectCollection moc = cimobject.GetInstances(); 
foreach(ManagementObject mo in moc) 

 HDid = (string)mo.Properties["Model"].value; 
 MessageBox.Show(HDid  );  



16、在.NET中輕松獲取系統(tǒng)信息(1) -WMI篇 
Montaque 
申明: 
    1、個(gè)人的一點(diǎn)心得,僅供參考 
    2、轉(zhuǎn)載時(shí)候,請(qǐng)保留原本。 

概述: 
 不知道大家有沒有這種體會(huì)?有時(shí)候?yàn)榱双@取系統(tǒng)一點(diǎn)點(diǎn)信息,比如考慮一下操作系統(tǒng)的版本號(hào),或者當(dāng)前屏幕的分辨率。其實(shí)說到底就是讀操作系統(tǒng)某個(gè)方面的一個(gè)屬性值而已,然后就看到我們的程序中密密麻麻的Win32 API申明,調(diào)用,代碼的可讀性和維護(hù)性不言而喻。到了.NET,微軟提供了更為豐富的類,有很多以前要調(diào)用API的方法可以在.NET中輕而易舉的調(diào)用實(shí)現(xiàn)。今天簡(jiǎn)單介紹一個(gè)在.NET中如何通過與WMI(Windows 管理規(guī)范)的通訊,從而得到獲取信息的目的。 
主要思路: 
 舉一個(gè)獲取操作系統(tǒng)共享目錄和獲取主板號(hào)的例子,介紹如何利用System.Managment下面的類獲取系統(tǒng)相關(guān)的信息: 

正文: 
 WMI(Windows管理規(guī)范:Windows Management Instrumentation)是Microsoft基于Web的企業(yè)管理(WBEM)的實(shí)現(xiàn),同時(shí)也是一種基于標(biāo)準(zhǔn)的系統(tǒng)管理接口。WMI最早出現(xiàn)在Microsoft Windows 2000系統(tǒng)上,但它同樣可以安裝在Windows NT 4和Windows 9x計(jì)算機(jī)上。WMI是一種輕松獲取系統(tǒng)信息的強(qiáng)大工具。 
 在.NET中,有一個(gè)System.Management名空間(系統(tǒng)默認(rèn)沒有引用,我們可以手動(dòng)添加引用),通過下面的Class的操作,可以查詢系統(tǒng)軟硬件的信息,先看一個(gè)簡(jiǎn)單的例子: 

Imports System.Management 
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_share") 
Dim share As ManagementObject 
 For Each share In searcher.Get() 
       MessageBox.Show(share.GetText(TextFormat.Mof)) 
 Next share 
運(yùn)行的結(jié)果是列出了所有系統(tǒng)當(dāng)前共享的目錄、以及描述等等。 

分析一下上面的代碼,可以看到一下幾點(diǎn): 
1、似乎是在進(jìn)行數(shù)據(jù)庫(kù)操作,有點(diǎn)像SQL語句。其實(shí)就是SQL操作,這種語句被成WQL(WMI Query Language),實(shí)際上是標(biāo)準(zhǔn)SQL的一個(gè)子集加上了WMI的擴(kuò)展. 
2、WQL是個(gè)只讀的查詢語言,我們只能查詢響應(yīng)的數(shù)據(jù),不能用UPDATE,INSERT等更新操作 
3、代碼很簡(jiǎn)單、通俗易懂 
4、我們采用了一種MOF(托管對(duì)象格式)的顯示。 

例子二:獲取當(dāng)前主板的信息 
 上面的例子是一個(gè)軟件方面的信息,下面看一個(gè)獲取硬件信息的例子,獲取主板的序列號(hào)以及制造商: 
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard") 
Dim share As ManagementObject 
   For Each share In searcher.Get() 
      Debug.WriteLine("主板制造商:" & share("Manufacturer")) 
      Debug.WriteLine("型號(hào):" & share("Product")) 
      Debug.WriteLine("序列號(hào):" & share("SerialNumber")) 
   Next share 
總結(jié)以及補(bǔ)充: 
 WMI類也是分層次的,具體可以參考msdn中的WMI;轉(zhuǎn)向.NET平臺(tái)開發(fā)的時(shí)候,最好能多看一些關(guān)于.NET新特性的介紹,這樣可以大幅度的提升代碼的開發(fā)效率以及運(yùn)行效率。

相關(guān)文章

最新評(píng)論