|
最近看vbs的wmi,发现有许多概念不太好理解。如果完全照教程的讲义去理解研究的话,入门的时间会很长。wmi在VBS里来讲,也算是面向对象的编程了。它的许多概念与别的面向对象的编程语言是相通的。我在这里对男生讲解一下我的理解,相信看完了,你立马就理解了。
第一,什么是命名空间。有部份教程也把当叫作域的。其实命名空间很简单,用一个世界来举例,那么日本、中国、法国这些名字就是命名空间,你把它当作地域就好理解了。
第二,什么是类。从第一继承下来,如果命名空间里有日本的话,那日本人就是一个类了。当然,中国也是一个命名空间,那么中国人也是一个类。
第三,什么是类的实例。日本人是一个类,那么日本女优、日本男优就是类的实例了,或者是类的实例集合。日本女优里的高树玛利亚、或者松岛枫就是单独一个类的实例。
第四,类的实例(也可以说类)的方法和属性。像日本女优都有的属性:她们是女的、都有名字等等。那么日本女优的方法有:KouJ、RuJ、ChaoP等。
WMI的脚本程序流程类似就是在不同的命名空间建立不同的类对象,然后根据类对象再建立类实例集合对象,最后在类实例集合对象里例举每个实例的方法属性。好比在日本这个命名空间里建立一个的日本人这个类对象,然后根据日本人这个类对象再建立日本女优的类实例集合对象,最后在这个类集合对象里去查找每个日本女优,看下日本女优的名字、相貌,和做爱的方法等等。
可能有人对我的表达方法有疑义。我再补充一下,命名空间和类这些东东都是抽象的定义,我把它们实例化了。你也可以单独把日本女优做为一个命名空间,那么拍SM的做为一个类,都是可以的。
举一个最简单的例子吧:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
'建立一个类对象objWMIService,代表日本人 。这个对象是如何建立的呢?就是连接到世界里的日本命名空间。strComputer代表世界,就是你的机器了。root\CIMV2就是命名空间,相当于日本。winmgmts:\\是固定的,要求这么写。
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM CIM_DataFile",,48)
'再建立一个类实例集合对象colItems,代表日本女优的集合。这个对象就是再在日本人这个类对象(objWMIService)里找日本女优(CIM_DataFile)的集合.。当然如果你查询语句详细一点或者不用ExecQuery用get,可以直接找到高树玛利亚。就是单独一个类实例了。
For Each objItem in colItems
Wscript.Echo "-----------------------------------"
Wscript.Echo "CIM_DataFile instance"
Wscript.Echo "-----------------------------------"
Wscript.Echo "Caption: " & objItem.Caption
Next
'
这个循环就是在类实例集合对象colItems(代表日本女优的集合对象)里例举日本女优的名字、相貌等等。
[1] [2] 下一页 |