在 .NET 中輕松獲取系統信息 (1) - WMI 篇 Montaque 申明: 1 、個人的一點心得,僅供參考 2 、轉載時候,請保留原本。 概述: 不知道大家有沒有這種體" name="description" />

在.NET中輕松獲取系統信息(1)-WMI篇

發表于:2007-05-25來源:作者:點擊數: 標簽:系統-WMI.NET獲取信息
MI LY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在 .NET 中輕松獲取系統信息 (1) - WMI 篇 Montaque 申明: 1 、個人的一點心得,僅供參考 2 、轉載時候,請保留原本。 概述: 不知道大家有沒有這種體

MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在.NET中輕松獲取系統信息(1) WMI

Montaque

申明:

    1、個人的一點心得,僅供參考
    2
、轉載時候,請保留原本。

 

概述:

       不知道大家有沒有這種體會?有時候為了獲取系統一點點信息,比如考慮一下操作系統的版本號,或者當前屏幕的分辨率。其實說到底就是讀操作系統某個方面的一個屬性值而已,然后就看到我們的程序中密密麻麻的Win32 API申明,調用,代碼的可讀性和維護性不言而喻。到了.NET,微軟提供了更為豐富的類,有很多以前要調用API的方法可以在.NET中輕而易舉的調用實現。今天簡單介紹一個在.NET中如何通過與WMIWindows 管理規范)的通訊,從而得到獲取信息的目的。

主要思路:

       舉一個獲取操作系統共享目錄和獲取主板號的例子,介紹如何利用System.Managment下面的類獲取系統相關的信息:

 

正文:

       WMIWindows管理規范:Windows Management Instrumentation)是Microsoft基于Web的企業管理(WBEM)的實現,同時也是一種基于標準的系統管理接口。WMI最早出現在Microsoft Windows 2000系統上,但它同樣可以安裝在Windows NT 4Windows 9x計算機上。WMI是一種輕松獲取系統信息的強大工具。

       .NET中,有一個System.Management名空間(系統默認沒有引用,我們可以手動添加引用),通過下面的Class的操作,可以查詢系統軟硬件的信息,先看一個簡單的例子:

 

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

運行的結果是列出了所有系統當前共享的目錄、以及描述等等。

 

分析一下上面的代碼,可以看到一下幾點:

1、似乎是在進行數據庫操作,有點像SQL語句。其實就是SQL操作,這種語句被成WQL(WMI Query Language),實際上是標準SQL的一個子集加上了WMI的擴展.

2、WQL是個只讀的查詢語言,我們只能查詢響應的數據,不能用UPDATE,INSERT等更新操作

3、代碼很簡單、通俗易懂

4、我們采用了一種MOF(托管對象格式)的顯示。

 

例子二:獲取當前主板的信息

       上面的例子是一個軟件方面的信息,下面看一個獲取硬件信息的例子,獲取主板的序列號以及制造商:

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("型號:" & share("Product"))

      Debug.WriteLine("序列號:" & share("SerialNumber"))

   Next share

總結以及補充:

       WMI類也是分層次的,具體可以參考msdn中的WMI;轉向.NET平臺開發的時候,最好能多看一些關于.NET新特性的介紹,這樣可以大幅度的提升代碼的開發效率以及運行效率。

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97