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其它相關文章!
推薦閱讀:
- SpringBoot集成本地緩存性能之王Caffeine示例詳解
- Docker中關於Namespace隔離機制全面解析
- 使用 Visual Studio 2022 開發 Linux C++ 應用程序的過程詳解
- C# Record構造函數的行為更改詳解
- C#使用IronPython庫調用Python腳本