c# 通過wbemtest和WMI Code Cretor更加高效的訪問WMI

第一步:

官網(或跟硬件開發WMI的人溝通你需要的接口和參數定義,如果是和硬件開發的人協定WMI接口,直接看第二步)查找你需要的WMI信息;

舉例我需要獲取顯示器信息

我先biying搜索需要哪個WMI,再microsoft的docs下找到對應的WMI Requirements詳細信息。

比如我知道瞭我需要WmiMonitorConnectionParams 來獲取顯示器信息。那麼我去docs文檔中搜索WmiMonitorConnectionParams ,地址如下:

WmiMonitorConnectionParams class – Win32 apps | Microsoft Docs

我們看下圖的Namespace的Value是Root\wmi

我們就知道瞭,他書屬於namespace命名空間的同時我們再網站的上面找到Properties,看到有一個一個InstanceName和一個VideoOutputTechnology,分別是string類型和uint32類型。

我們目前需要的信息就這麼多,然後我們開始快速的再需要驗證的機器上來驗證接口返回信息,如果有問題。

第二步:

不需要寫代碼,快速驗證接口是否可用。

(避免有因為個人代碼導致的其他問題,占用大量溝時間,這種軟硬件結合的溝通調試成本較高)

使用Win+R鍵打開允許輸入wbemtest.exe按下回車,這是系統自帶的WMI工具。

這個就是我們快速驗證WMI的工具。

(1)點擊連接。

(2)再彈出框的命名空間理輸入我們剛才再網上查到的命名空間:Root\wmi。因為我們不是遠程連接到其他電腦,所以連接保持默認。點擊右上角連接。

(3)不一樣的WMI消息查詢方式是不一樣的,比如有的是主動查詢、有的是被動接受。主要差別是再選擇查詢和通知查詢上。更為復雜的操作我們這裡目前用不上,因為我們主要是為瞭驗證WMI。

本次我們點擊查詢,因為是我們主動查詢顯示器信息,這不是一個事件,在彈出的查詢對話框中輸入:

SELECT InstanceName, VideoOutputTechnology FROM WmiMonitorConnectionParams
點擊應用,出現下圖就代表該接口能正常訪問,如果提示錯誤,就代表輸入有問題。或輸入的WMI有問題,需要調試或跟對應的人員溝通,如果是硬件給你發送的WMI,要確認這臺機器上硬件以調試好,能正常發送WMI消息。

達到這樣的效果,WMI就相當於測試通拉,是不是快速驗證WMI特別方便和快捷?能大量提高溝通效率。 接下來就是代碼環節瞭。

第三步:

使用WMI工具生成代碼:

WMI Code Creator是微軟提供的一個WMI代碼生成工具,用於生成對應的WMI訪問代碼。可以選擇

從這個網站下載軟件:

Download WMI Code Creator v1.0 from Official Microsoft Download Center

我們點擊Code Language 切換到C# 。

(1)Namespace:選擇root\WMI (——-註意大小寫!!!——-)

(2)再Classes選擇或輸入我們查到的WmiMonitorConnectionParams 。

(3)再result下勾選我們要查詢的內容,3個我們都要查。

(4)代碼就會再右側出現瞭。這樣的話。就能正常的移植代碼到我們的項目中拉。

(5)這個訪問WMI的功能微軟主要封裝在System.Management的命名空間下。剩下的就可以自己擴展拉。有自己去訪問得到值得WMI。還有接受事件得WMI。主要思路就是先查或定義自己要用得WMI接口然後查詢或者協商定義參數。然後再這裡封裝代碼就可以拉。

以上就是c# 通過wbemtest和WMI Code Cretor更加高效的訪問WMI的詳細內容,更多關於c# 高效的訪問WMI的資料請關註WalkonNet其它相關文章!

推薦閱讀: