在.NET中輕鬆獲取系統資訊(1) -WMI篇 (轉)
在中輕鬆獲取資訊(1) -WMI篇
Montaque
申明:
1、個人的一點心得,僅供參考
2、轉載時候,請保留原本。
:namespace prefix = o ns = "urn:schemas--com::office" />
概述:
不知道大家有沒有這種體會?有時候為了獲取系統一點點資訊,比如考慮一下的版本號,或者當前螢幕的解析度。其實說到底就是讀作業系統某個方面的一個屬性值而已,然後就看到我們的中密密麻麻的 申明,,程式碼的可讀性和維護性不言而喻。到了.NET,提供了更為豐富的類,有很多以前要呼叫API的方法可以在.NET中輕而易舉的呼叫實現。今天簡單介紹一個在.NET中如何透過與WMI( 管理規範)的通訊,從而得到獲取資訊的目的。
主要思路:
舉一個獲取作業系統共享目錄和獲取主機板號的例子,介紹如何利用System.Managment下面的類獲取系統相關的資訊:
正文:
WMI(Windows管理規範:Windows Management Instrumentation)是Microsoft基於的企業管理(WBEM)的實現,同時也是一種基於標準的介面。WMI最早出現在Microsoft 系統上,但它同樣可以在 4和Windows 9x上。WMI是一種輕鬆獲取系統資訊的強大工具。
在.NET中,有一個System.Management名空間(系統預設沒有引用,我們可以手動新增引用),透過下面的Class的操作,可以查詢系統軟的資訊,先看一個簡單的例子:
Imports System.Management
Dim searcher As New ManagementSearcher(" * FROM Win32_share")
Dim share As ManagementObject
For Each share In searcher.Get()
MessageBox.Show(share.GetText(TextFormat.Mof))
Next share
執行的結果是列出了所有系統當前共享的目錄、以及描述等等。
分析一下上面的程式碼,可以看到一下幾點:
1、似乎是在進行操作,有點像語句。其實就是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()
De.WriteLine("主機板製造商:" & share("Manufacturer"))
Debug.WriteLine("型號:" & share("Product"))
Debug.WriteLine("序列號:" & share("SerialNumber"))
Next share
總結以及補充:
WMI類也是分層次的,具體可以參考msdn中的WMI;轉向.NET平臺開發的時候,最好能多看一些關於.NET新特性的介紹,這樣可以大幅度的提升程式碼的開發以及執行效率。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993128/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於用WMI獲取系統資訊——程式設計實現(轉)程式設計
- 在Delphi程式設計中獲取作業系統資訊 (轉)程式設計作業系統
- python使用wmi模組獲取windows下的系統資訊 監控系統PythonWindows
- 在.NET Framework中輕鬆處理XML資料(一) (轉)FrameworkXML
- 在.NET Framework中輕鬆處理XML資料(五) (轉)FrameworkXML
- 使用 mDNS 在區域網中輕鬆發現系統DNS
- Android系統資訊獲取Android
- 第十四篇:獲取系統資料檔案資訊
- Python獲取系統資訊模組psutil(轉載)Python
- 在ASP.NET裡輕鬆實現縮圖 (轉)ASP.NET
- SNMP系統資訊獲取工具onesixtyone
- 獲取資訊版本1
- Intel TSX最新漏洞,可輕鬆攻擊作業系統,獲取敏感資料Intel作業系統
- 輕鬆掌握useAsyncData獲取非同步資料非同步
- 在 FreeBSD 下利用 Freemail 輕鬆組建郵件系統(轉)AI
- SAP ABAP使用CDS獲取系統資訊
- Sigar獲取作業系統資訊作業系統
- vmi:獲取 windows 系統硬體資訊Windows
- 在BCB中輕鬆使用ActiveX控制元件 (轉)控制元件
- 5招輕鬆獲取Mac檔案路徑Mac
- 輕鬆加密ASP.NET 2.0 Web程式配置資訊加密ASP.NETWeb
- HGDB怎麼獲取資料庫中關鍵系統資訊資料庫
- android系統中獲取imei號和其他手機資訊Android
- 六大絕招輕鬆搞定系統更新(轉)
- 使用 Python 獲取 Linux 系統資訊PythonLinux
- 獲取計算機系統唯一資訊計算機
- Android中獲取系統記憶體資訊以及程式資訊-----ActivityManager的使用(一)Android記憶體
- 如何輕鬆地檢查 Ubuntu 版本以及其它系統資訊Ubuntu
- 小改系統設定輕鬆安裝大軟體(轉)
- 獲取系統字型,獲取系統預設字型
- golang gopsutil 程式 系統硬體資訊 獲取Golang
- Windows系統安全獲取重要資訊的方法(一)Windows
- psutil獲取作業系統負載資訊作業系統負載
- Java:如何輕鬆獲取當前執行的方法名Java
- 在ASP.NET開發中輕鬆讓網頁彈出視窗ASP.NET網頁
- jquery中利用事件屬性which輕鬆獲取鍵盤和滑鼠鍵值jQuery事件
- 如何輕鬆玩轉樹莓派系統?樹莓派
- 辦公室革命,教你輕鬆搞定輕鬆玩轉ExcelExcel