断断续续的,历经三年将WMI这个主题给写完了。记得最开始时接触该技术,是因为传统获取CPU序列号的方法总是出错。于是接触了这种已经很老的技术。本着打破砂锅问到底的想法,我决定稍微研究一下,结果越来越深。正好借着年前这点时间,把该主题完结。(转载请指明出于breaksoftware的csdn博客)
《WMI技术介绍和应用——WMI概述》一文主要翻译了MSDN上对WMI的介绍,有了这个介绍,我们将对WMI结构有个粗略的认识。
《WMI技术介绍和应用——VC开发WMI应用的基本步骤》和《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》两篇文章讲解了如何使用C++编写一个使用WMI的基础类以及一个查询类。
下列文章则罗列了使用WMI查询信息的WQL语句写法
《WMI技术介绍和应用——查询正在运行的进程信息》
《WMI技术介绍和应用——查询正在运行的线程信息》
《WMI技术介绍和应用——查询桌面信息》
《WMI技术介绍和应用——查询环境变量》
《WMI技术介绍和应用——查询驱动信息》
《WMI技术介绍和应用——查询文件夹信息》
《WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息》
《WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息》
《WMI技术介绍和应用——查询系统信息》
《WMI技术介绍和应用——查询系统信息和补丁包信息》
《WMI技术介绍和应用——查询时间信息》
《WMI技术介绍和应用——查询系统服务》
《WMI技术介绍和应用——查询本地用户和组》
《WMI技术介绍和应用——查询硬件信息》
以上内容是一个分水岭,基本都是3年前写的。最近则主要研究WMI的其他使用方法和Provider的编写。其中研究Provider是最困难的,因为资料太少且非常不全面,导致我一度想放弃。但是好在最最失望的时候找到了一个好书《Developing WMI Solutions》。
《WMI技术介绍和应用——接收事件》一文讲解了如何编写WQL接收WMI事件。
《WMI技术介绍和应用——执行方法》一文介绍了如何执行WMI已注册类提供的方法。
《WMI技术介绍和应用——事件通知》一文介绍了WMI事件的类型,并提供了一种使用C++查询和接收事件的类。
《WMI技术介绍和应用——Instance/Method Provider》一文介绍了如何生成和编写一个WMI Instance Provider和Method Provider的方法。
《WMI技术介绍和应用——Event Provider》一文介绍了如何生成和编写intrinsic event provider和extrinsic event provider的方法。
![](/qrcode.jpg)
《WMI技术介绍和应用——Event Consumer Provider》一文介绍了如何编写一个事件永久消费者的方法。
在开发中,我们还是需要一些工具的。比如微软提供的“WMI Administrative Tools”。很可惜,我的环境下用不了其CIM Studio、Object Browser等工具。还好我找到了替代工具“WMI Explorer”。还有个工具非常重要——wbemtest(C:\Windows\System32\wbem下)。它可以用于删除我们之前注册的实例以及类,这对我们开发调试WMI Provider时非常重要。