首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

初学WMI,关于WMI的应用例程

2012-02-01 
初学WMI,在线等关于WMI的应用例程如题,那位大侠能够提供WMI的应用例程,最好有详细说明[解决办法]VB code看

初学WMI,在线等关于WMI的应用例程
如题,那位大侠能够提供WMI的应用例程,最好有详细说明

[解决办法]

VB code
看一个使用WMI的例子,该例子列举本机上的所有系统服务的名字、状态、启动方式、登录身份、描述、路径。(就是用VBA做一个和控制面板里的服务组件一样的服务管理器)例1:打开VBA编辑器,单击“工具”—“引用“ ,添加“Microsoft WMI Scripting V1.2 Library”,在Sheet1中添加CommandButton1和如下代码:Option ExplicitDim WMILocator As New SWbemLocator '定义一个指向WMI的指针Dim WMIServices As SWbemServicesDim WMIObjectSet As SWbemObjectSetDim WMIObject As SWbemObjectPrivate Sub CommandButton1_Click()Dim i As LongSheet1.Cells.ClearSheet1.Range("a1:e1") = Array("名称", "状态", "启动类型", "登录身份", "描述")Set WMIServices = WMILocator.ConnectServer()  '利用指针连接到本机的WMI,返回一个对 SWbemServices 对象的引用Set WMIObjectSet = WMIServices.InstancesOf("Win32_Service")'用对象WMIServices的InstancesOf方法返回Win32_Service类名标识的所有实例i = 2With Sheet1    For Each WMIObject In WMIObjectSet '在WMIObjectSet(Win32_Service类集合)中遍历每个实例        .Range("a" & i).Value = WMIObject.DisplayName '服务名称添加到a列        If WMIObject.State = "Stopped" Then '判断对象State属性的值并转换为中文添加到B列            .Range("b" & i).Value = "停止"        Else            .Range("b" & i).Value = "启动"        End If        If WMIObject.StartMode = "Disabled" Then '判断对象StartMode属性的值并转换为中文添加到C列            .Range("c" & i).Value = "禁用"        ElseIf WMIObject.StartMode = "Manual" Then            .Range("c" & i).Value = "手动"        Else            .Range("c" & i).Value = "自动"        End If        .Range("d" & i).Value = WMIObject.StartName '将服务的登录身份添加到D列                .Range("e" & i).Value = WMIObject.Description '将服务的描述添加到E列        i = i + 1    NextEnd WithSet WMIObject = NothingSet WMIObjectSet = NothingEnd Sub
[解决办法]
总结一下使用WMI的步骤:
1、添加对“Microsoft WMI Scripting V1.1 Library”的引用。
2、创建SwbemLocator指针。创建指针的目的是为了建立对WMI对象的引用实例,然后用这个实例操作WMI。
用Dim WMILocator As New SwbemLocator定义语句直接创建就可以了。
3、连接到WMI服务
Set WMIServices = WMILocator.ConnectServer()
'利用指针连接到指定计算机的WMI服务,然后返回一个SwbemServices对象。
4、获得WMI类的实例集合
Set WMIObjectSet = WMIServices.InstancesOf(“类名”)
'利用SwbemServices对象的InstancesOf 方法返回指定类名的所有实例
5、使用WMI资源

热点排行