Windows操作系統作為優秀的操作系統,由開發操作系統的微軟公司控制接口和設計,公開標準,因此,有大量商業公司在該操作系統上開發商業軟件。 我們發現了windows和office的激活都依賴于一個叫WMI的東西。那么什么是WMI呢?、 官方定義是Windows Management Instrumentation (WMI) is the infrastructure for management data and operations on Windows-based operating systems.簡單的說就是windows系統上數據和操作的管理器。 一般來說都會微軟傾向于使用腳本語言對WMI進行查詢,(如slmgr.vb)。但是在桌面應用程序層面腳本語言的使用會缺少靈活性。不過好在C#在System.Management中提供了,一個叫ManagementObjectSearcher的類。可以通過特定的sql語句,對WMI中的對象進行查詢。范圍可以包括軟件,硬件,網絡等等系統信息。 License Status 查詢License狀態,首先是構造一個Scope是root\\CIMV2,的搜索對象,然后在SoftwareLicensingProduct這張表中查詢。如下面的代碼所示,其中LicenseStatus=1表示軟件處于激活狀態。(當然你可以選擇SELECT * ,如果 不擔心時間問題) ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT ApplicationID, Description, ID, LicenseStatus, Name FROM SoftwareLicensingProduct WHERE LicenseStatus=1"); foreach (var queryObj in searcher.Get()) { Console.WriteLine("-----------------------------------"); Console.WriteLine("SoftwareLicensingProduct instance"); Console.WriteLine("-----------------------------------"); Console.WriteLine("ApplicationID: {0}", queryObj["ApplicationID"]); Console.WriteLine("Description: {0}", queryObj["Description"]); Console.WriteLine("ID: {0}", queryObj["ID"]); Console.WriteLine("LicenseStatus: {0}", queryObj["LicenseStatus"]); Console.WriteLine("Name: {0}", queryObj["Name"]); } ![]()
Windows操作系統對硬件支持良好。 |
溫馨提示:喜歡本站的話,請收藏一下本站!