2023年11月30日发(作者:)

VBS脚本编程(6——对象的创建与调⽤

对象:严格的说,对象是复杂数据和程序结构在内存中的表现,只有在程序运⾏时才存在。包含有⽅法和属性。

对象的创建及⽤法

1. Set 语句

将对象引⽤赋给⼀个变量或属性,或者将对象引⽤与事件关联。

Set objectvar = {objectexpression | New classname | Nothing}

-或者-

Set ame = GetRef(procname)

参数

objectvar

必选项,变量或属性名称;符合标准变量命名规则。

objectexpression

可选项,与对象名称⼀致的表达式,另⼀个相同对象类型、函数或⽅法的已声明变量,它们返回相同对象类型的对象。

New

⽤于创建⼀个类的新实例的关键字。如果 objectvar 包含⼀个对某个对象的引⽤,当⼀个新的引⽤被赋给这个对象之后,则这个引⽤将

被释放。New 关键仅⽤于创建⼀个类的实例。

classname

可选项. 创建的类名称。使⽤ Class 语句定义类及其语句。

Nothing

可选项。断开 objectvar 与任何指定对象或类的关联。当没有其他变量引⽤前⾯的引⽤对象时,将 objectvar 赋值为 Nothing 以释放与前

⾯的引⽤对象相关联的系统或内存资源。

object

必选项。与 event 相关联的对象名称。

event

必选项。函数作⽤域的事件名称。

procname

必选项。包含与event 相关联的 Sub Function 名称的字符串。

说明

为了使其有效,objectvar 必须与赋值的对象类型相⼀致。

DimPrivatePublic ReDim 语句仅声明⼀个引⽤对象的变量。在使⽤. Set 语句为⼀个具体对象赋值之前,没有实际对象可以引

⽤。

通常, 当您使⽤ Set 语句将⼀个对象引⽤赋给⼀个变量之前,不会创建那个变量的对象的副本。实际上,只创建了⼀个对象的引⽤。多个引

⽤对象变量可以引⽤相同的对象。因为这些变量都是对象的引⽤,⽽不是对对象副本的引⽤,因此对象中所作的任何变化都可以在引⽤该对

象的所有变量中反映出来。

利⽤ New 关键字,您可以随时创建⼀个类的实例,并将⼀个对象引⽤变量赋值给它。赋给类的实例的变量⼀定利⽤ Dim (或相似的语

)语句事先已经声明。

2. CreateObject 函数

创建并返回对 Automation 对象的引⽤。

CreateObject(me [, location])

参数

servername

必选项。提供对象的应⽤程序名称。

typename

必选项。要创建的对象类型或类。

location

可选项。对象所在的⽹络服务器将被创建。

说明

Automation 服务器⾄少提供⼀种对象类型。例如,字处理应⽤程序可以提供应⽤程序对象、⽂档对象和⼯具条对象。

要创建 Automation 对象,将 CreateObject 函数返回的对象赋值给某对象变量

举例,创建Excel表格对象:

Dim ExcelSheet

Set ExcelSheet = CreateObject("")

' 上述代码启动创建对象(在此实例中,是 Microsoft Excel 电⼦表格)的应⽤程序。

' 对象创建后,就可以在代码中使⽤定义的对象变量引⽤此对象。

' 在下⾯的⽰例中,可使⽤对象变量、ExcelSheet 和其他 Excel 对象,包括 Application 对象和 Cells 集合访问新对象的属性和⽅法。

' 例如:

' 使 Excel 在整个 Application 对象中都可见。

e = True

' 将⼀些⽂本放⼊⼯作表的第⼀个单元格中。

(1,1).Value = "This is column A, row 1"

' 保存⼯作表。

"C:"

' 关闭 Excel,使 Quit ⽅法处于 Application 对象中。

' 释放对象变量。

Set ExcelSheet = Nothing

在远程服务器上创建⼀个对象,当 Internet 安全关闭时只能完成。通过传递计算机名到 CreateObject 服务器名的参数,能在远程⽹络上

创建对象。该名称如同共享部份的机器名。例如⽹络共享名命名为: "myserverpublic", servername "myserver"。另外,只能指定

servername 使⽤ DNS 格式或 IP 地址。

3. GetObject 函数

返回对⽂件中 Automation 对象的引⽤。

GetObject([pathname] [, class])

参数

Pathname

可选项。字符串,包含待检索对象的⽂件的完整路径和名称。如果省略 pathname 则必须有 class

Class

可选项。字符串,对象的类。

class 参数的语法格式为 ype,其中包括以下部分:

参数

appname

必选项。字符串,提供对象的应⽤程序名称。

objectype

必选项。字符串,要创建的对象的类型或类。

说明

使⽤ GetObject 函数可以访问⽂件中的 Automation 对象,⽽且可以将该对象赋值给对象变量。使⽤ Set 语句将 GetObject 返回的对象赋值

给对象变量。

常⽤的VBS调⽤对象

⽂件系统对象相关: ("stemobject")

字典相关: ("nary")

脚本外壳相关: ("")

windows外壳相关: ("ation")

正则表达式相关: ("")

asp相关: ("tor") ("nk") ("")

公⽤对话框相关: ("dialog")

编码与密码相关: ("rd") ("r")

邮件发送的组件相关: ("e") ("l") ("uration") ("ication.1")

("novellgroupwaresession")

⽔晶报表相关: ("ation")

ie浏览器相关: ("ation")

windows媒体播放相关: ("") (".7")

助⼿⾓⾊相关: ("l")

ado相关: ("tion") ("d") ("set") ("") ("") ("ne.35")

("g") ("")

sql相关: ("ver") ("") ("") ("") ("device") ("se")

("e") ("ation") office相关: ("ation") ("ation") ("ation")

("") ("ation") ("ation") ("ation") ("ation")

图像图形相关: ("") ("") (".1")("") ("t") ("")

("ation")

语⾳朗读相关: ("ext") ("ext.1") ("e") ("stream") ("speech")

("speech.1") ("voice") ("voice.1")

操作系统相关: ("r") ("ops") ("") ("") ("") ("t")

("lication") ("l") ("ler") ("ation") ("dialog")

("log.1") ("dialog")

wmi相关: ("atetime") ("ocator") ("amedvalueset")

("ink","sink_")("efresher") ("asterror")