资源描述:
《二、vb中使用wmi的基本方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、二、VB中使用WMI的基本方法 上一讲我们初步了解了一下WMI,并在VB中使用WMI对象做了一个进程管理器,为加深各位的对WMI对象引用方法的程序结构印象和增加兴趣,我们再举一个例子,就是枚举当前系统所有服务的名称、状态和启动类型等。与例程1一样,首先建立一个新工程具有Form1窗体,在菜单中的【工程】—【部件】下,添加“MicrosoftWindowsCommonControls6.0”,在菜单中的【工程】—【引用】下,添加“MicrosoftWMIScriptingV1.1Library”,然后在Form1窗体上添加1个ListView1,在代码窗口添加如下代
2、码(例程2):OptionExplicitDimobjSWbemLocatorAsSWbemLocatorDimobjSWbemServicesAsSWbemServicesDimobjSWbemObjectSetAsSWbemObjectSetDimobjSWbemObjectAsSWbemObjectDimstrComputerAsString,strNameSpaceAsString,strClassAsStringPrivateSubForm_Load()DimiAsLong Me.Caption="服务" ListView1.ColumnHeaders
3、.Clear ListView1.ColumnHeaders.Add,,"名称",2600 ListView1.ColumnHeaders.Add,,"状态",1000 ListView1.ColumnHeaders.Add,,"启动类型",1000 ListView1.ColumnHeaders.Add,,"路径",2600 ListView1.ColumnHeaders.Add,,"登录身份",1400 ListView1.View=lvwReport strComputer="." '计算机名,.为本机 strNa
4、meSpace="rootcimv2"'指定命名空间为rootcimv2 strClass="Win32_Service" '指定类为Win32_Service SetobjSWbemLocator=CreateObject("WbemScripting.SWbemLocator") '建立1个WBEM对象的引用指针 SetobjSWbemServices=objSWbemLocator.ConnectServer(strComputer,strNameSpace) '连接到指定计算机、命名空间的WMI,返回一个对SWbemServices对象的
5、引用 SetobjSWbemObjectSet=objSWbemServices.ExecQuery("SELECT*FROM"&strClass) '通过WQL查询,返回指定类的所有实例 ForEachobjSWbemObjectInobjSWbemObjectSet ListView1.ListItems.Add,"a"&i,objSWbemObject.DisplayName'将服务名称添加到ListView1第一列 ListView1.ListItems("a"&i).SubItems(1)=objSWbemObject.State
6、'将服务的状态添加到ListView1第二列 ListView1.ListItems("a"&i).SubItems(2)=objSWbemObject.StartMode'将服务的启动方式添加到ListView1第三列 ListView1.ListItems("a"&i).SubItems(3)=objSWbemObject.PathName'将服务程序的路径添加到ListView1第四列 ListView1.ListItems("a"&i).SubItems(4)=objSWbemObject.StartName'将服务的登录身份添
7、加到ListView1第五列 i=i+1 Next SetobjSWbemObject=Nothing SetobjSWbemObjectSet=NothingEndSub 嘿,我们运行这个例程后,果然把自己计算机上所有的服务都列了出来,并且还知道这些服务目前的运行状态以及服务程序所在的目录和执行文件名。美中不足的是似乎我们不能停止或启动某个服务,不要急,其实可以很方便的就增加停止或启动某个服务的功能,但因为本节主要是要讨论VB中使用WMI的基本方法,因此故意省略了其它一些功能的实现。 闲话少说言规正传,现在我们就开始讨论一下VB中使用WMI