您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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#是一個簡單、通用、面向對象的編程語言,它由微軟Microsoft開發,繼承了C和C++強大功能,并且去掉了一些它們的復雜特性,C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程從而成為.NET開發的首選語言,但它不適用于編寫時間急迫或性能非常高的代碼,因為C#缺乏性能極高的應用程序所需要的關鍵功能。
感謝各位的閱讀!關于“c#如何通過wbemtest和WMI Code Cretor更加高效的訪問WMI”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。