
WMI技术介绍和应用
本专栏讲解如何使用WMI技术实现系统查询和管理功能
breaksoftware
这个作者很懒,什么都没留下…
展开
-
WMI技术介绍和应用——WMI概述
今天,我要开始一系列关于微软WMI技术的介绍。通过之后若干节的介绍,我想WMI技术将为在windows平台上从事开发的朋友开启另外一扇窗。(转载请指明出于breaksoftware的csdn博客) 第一次接触WMI技术是在一年前,当时我接到一个研究型的需求,无意中发现WMI技术是最可靠的解决方案。当时,WMI这种“特别”的使用方式让我这个VC程序员产生了浓厚的兴趣——像写SQL般原创 2012-12-28 17:20:04 · 43429 阅读 · 14 评论 -
WMI技术介绍和应用——VC开发WMI应用的基本步骤
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的...原创 2012-12-28 17:20:34 · 17439 阅读 · 5 评论 -
WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类
在《WMI技术介绍和应用——VC开发WMI应用的基本步骤》文中,我们介绍了VC使用WMI技术的基本框架。本节我将讲解封装和实现一个用于半同步查询WMI的类。(转载请指明出于breaksoftware的csdn博客) 我曾思考过如何编写一个比较有用的类,因为不同平台上WMI的查询结果集是不同的,很难做个通用的类。于是,我使用了最简单的方法——遍历返回结果。我们先看下...原创 2012-12-28 17:20:46 · 13001 阅读 · 23 评论 -
WMI技术介绍和应用——查询正在运行的进程信息
在《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》一文中,我们介绍到了一个半同步查询WMI类的框架。本文将是该技术的一个应用,介绍如何使用WMI技术查询正在运行的进程信息。(转载请指明出于breaksoftware的csdn博客) 如何使用WMI枚举正在运行的进程的进程名?CSynQueryData recvnotify(L"root\\C...原创 2012-12-31 23:31:14 · 11067 阅读 · 4 评论 -
WMI技术介绍和应用——查询正在运行的线程信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 一般来说,如果试图枚举系统中的线程。需要先枚举系统中的进程,然后再枚举每个进程中的线程。而WMI给我们提供了一种比较简便的枚举线程信息的方法。(转载请指明出于breaksoftware的csdn博客) 如何使用WMI枚举所有线程的所有信息?CSy...原创 2013-01-05 21:18:15 · 5485 阅读 · 10 评论 -
WMI技术介绍和应用——查询桌面信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 在Windows操作系统中,存在很多Windows Station。而每一个Windows Station又存在一个或者多个Windows Desktop。我们一般所说的桌面只是这些众多桌面中的一个。以下内容将介绍如何使用WMI查询桌面的相关信息。(转载请指明出于bre...原创 2013-01-08 19:53:36 · 5038 阅读 · 20 评论 -
WMI技术介绍和应用——查询环境变量
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 我们可以通过系统属性查看当前系统和当前用户的环境变量。(转载请指明出于breaksoftware的csdn博客) 如何使用WMI枚举所有环境变量的信息? CSynQueryData recvnotify(L"root\\CIMV2",L"SELE原创 2013-01-09 19:22:39 · 3621 阅读 · 0 评论 -
WMI技术介绍和应用——查询驱动信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 如何使用WMI查询所有驱动信息?(转载请指明出于breaksoftware的csdn博客) CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT * FROM Win32_SystemDriver" ); recvnot原创 2013-01-09 20:28:20 · 7054 阅读 · 0 评论 -
WMI技术介绍和应用——查询文件夹信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。 本节主要介绍Win32_Directory类。通过该类我们将可以获得部分常用的文件夹信息。在该类中,有属性Name,该属性标志文件的路径。由于尝试枚举文件夹是非常耗时的。本文将介绍如何获取指定文件夹的信息。(转载请指明出...原创 2013-01-11 20:08:19 · 6660 阅读 · 2 评论 -
WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 本节主要介绍Win32_DiskPartition和Win32_LogicalDisk两个类的应用。Win32_DiskPartition用于查询磁盘分区信息,W...原创 2013-01-15 21:21:29 · 18020 阅读 · 4 评论 -
WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 因为将要介绍的三个模块都比较简单,故将这三者合并在一起介绍。查询快捷方式信息是使用Win32_ShortcutFile类;查询映射磁盘信息是使用Win32_MappedLogic原创 2013-02-04 18:33:39 · 4683 阅读 · 2 评论 -
WMI技术介绍和应用——查询系统信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 本机主要知识点是Win32_ComputerSystem类。通过该类我们将可以获取部分系统设置。 如何使用WMI查询是否开启了系统硬件安全设置密...原创 2013-02-05 18:07:34 · 11528 阅读 · 2 评论 -
WMI技术介绍和应用——查询系统信息和补丁包信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 本文主要知识点是Win32_OperatingSystem和Win32_QuickFixEngineering类。通过该类我们将可以获取部分系统设置。 如何使用原创 2013-02-06 18:30:57 · 14703 阅读 · 6 评论 -
WMI技术介绍和应用——查询时间信息
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 本文主要介绍Win32_LocalTime和Win32_UTCTime。 如何使用WMI获取本地时间?SELECT Year,Month,Day,Hour,原创 2013-02-12 17:04:26 · 3099 阅读 · 0 评论 -
WMI技术介绍和应用——查询系统服务
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 本文主要介绍Win32_Service类。 如何使用WMI枚举系统中的服务?SELECT * FROM Win32_Service 我们以原创 2013-02-14 21:51:17 · 3292 阅读 · 0 评论 -
WMI技术介绍和应用——查询本地用户和组
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客) 本文主要介绍Win32_Group和Win32_UserAccount类。 如何使用WMI枚举所有的组内账户信息?SELECT * FROM Win32原创 2013-03-07 20:20:57 · 7618 阅读 · 4 评论 -
WMI技术介绍和应用——查询硬件信息
这个月实在太忙了,一直没有时间去继续写WMI的应用例子。 本来是希望将《WMI技术介绍和应用》系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点到为止,有需求的同学可以查询MSDN相关类的说明即可。本文将罗列一些可能使用到的一些知识点。如果你发现你期望查询的硬件信息在本文中没有写出来,请参看MSDN的《Computer System Hardware原创 2013-04-18 22:50:59 · 10952 阅读 · 19 评论 -
WMI技术介绍和应用——事件通知
本文主要讲解如何使用C++编写一个WMI事件查询类原创 2016-02-05 16:09:37 · 5865 阅读 · 1 评论 -
WMI技术介绍和应用——接收事件
时隔两三年,再次更新WMI系列博文。好在功能在三年前就已经实现了,现在只要补充些实例即可。 之前介绍的基本都是查询静态数据,而本文将要介绍非常有意思的事件接收功能。(转载请指明出于breaksoftware的csdn博客) 监控进程创建和死亡 首先提一个问题,如何监控系统创建进程?比如有些软件会监控竞品是否创建,如果创建了就通知用户“不...原创 2016-01-19 18:34:09 · 9386 阅读 · 13 评论 -
WMI技术介绍和应用——执行方法
在之前的博文中,我们主要介绍了如何使用WMI查询信息和接收事件。本文将介绍WMI的另一种用法——执行方法。(转载请指明出于breaksoftware的csdn博客) 这块的内容在msdn中有详细的介绍,如果想看原版的可以参阅《Example: Calling a Provider Method》 本文将基于《WMI技术介绍和应用——VC开发WMI...原创 2016-01-21 20:20:37 · 5312 阅读 · 0 评论 -
WMI技术介绍和应用——Instance/Method Provider
在《WMI技术介绍和应用——事件通知》一文中,我们提到了提供者(Provider)这个概念。我们还是要引入WMI的结构图(转载请指明出于breaksoftware的csdn博客) 我们在1这层的Native C/C++里可以看到若干Provider,这些Provider将各个实例或者事件信息通过WMI core传递到上层。微软对这块内容在MSDN上没有给出详细...原创 2016-02-07 13:35:32 · 3760 阅读 · 4 评论 -
WMI技术介绍和应用——Event Provider
在《WMI技术介绍和应用——Instance/Method Provider》一文中,我们介绍了Instance和Method Provider的编写方法。本文我们将介绍更有意思的“事件提供者”。在《WMI技术介绍和应用——事件通知》中,我们曾经提到事件是分为两种:intrinsic event和extrinsic event。这两种事件提供者在编写上也非常类似,我们先以extri...原创 2016-02-08 14:05:00 · 3464 阅读 · 0 评论 -
WMI技术介绍和应用——Event Consumer Provider
在《WMI技术介绍和应用——Event Provider》和《WMI技术介绍和应用——接收事件》中,我们展现了如何处理和事件相关的WMI知识。而《WMI技术介绍和应用——接收事件》一文则主要讲解了如何查询事件,这种查询是在我们进程存在时发生的,一旦我们进程不存在了,这种查询也无法执行。我们将这种行为称为消费事件,我们执行查询的进程叫做“事件临时消费者”。相对应的,WMI还存在“事件...原创 2016-02-08 15:22:07 · 2779 阅读 · 0 评论 -
WMI技术介绍和应用——总结(完)
对WMI开发过程的一个总结原创 2016-02-08 15:58:15 · 12168 阅读 · 16 评论