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操作系统对硬件支持良好。 |
温馨提示:喜欢本站的话,请收藏一下本站!