VBS函数应用--getobject的使用获得Automation对象

简介:

返回对文件中 Automation 对象的引用。

GetObject([pathname] [, class])

参数

Pathname

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

Class

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

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

参数

appname

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

objectype

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

说明

使用 GetObject 函数可以访问文件中的 Automation 对象,而且可以将该对象赋值给对象变量。使用 Set 语句将 GetObject 返回的对象赋值给对象变量。例如:

Dim CADObject
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

在执行上述代码时,就会启动与指定路径名相关联的应用程序,同时激活指定文件中的对象。如果 pathname 是零长度字符串 (""),GetObject 返回指定类型的新对象实例。如果省略 pathname 参数,GetObject 将返回指定类型的当前活动对象。如果没有指定类型的对象,就会出现错误。

某些应用程序允许只激活文件的一部分,方法是在文件名后加上一个惊叹号 (!) 以及用于标识要激活的文件部分的字符串。有关创建这种字符串的详细信息,请参阅创建对象的应用程序的有关文档。

例如,在绘图应用程序中,一个存放在文件中的图可能有多层。可以使用下述代码来激活图 SCHEMA.CAD 中的某一层:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

如果没有指定对象的类,则 Automation 会根据所提供的文件名,确定要启动的应用程序以及要激活的对象。但是,有些文件可能支持多个对象类。例如,图可能支持三种不同类型的对象:Application 对象、Drawing 对象和 Toolbar 对象,所有这些都是同一个文件中的一部分。使用可选项的 class 参数可以指定文件中要激活的对象。例如:

Dim MyObject
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING") 

在上述样例中,FIGMENT 是绘图应用程序的名称,而 DRAWING 则是它支持的一种对象类型。对象被激活之后,就可以在代码中使用所定义的对象变量来引用它。在前面的例子中,可以使用对象变量 MyObject 访问新对象的属性和方法。例如:

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "嗨,你好!"
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

注意 在对象的当前实例存在,或者要用已加载的文件创建对象时,请使用 GetObject 函数。如果没有当前实例,并且不准备使用已加载的文件启动对象,请使用 CreateObject 函数。

如果对象已注册为单个实例的对象,则无论执行多少次 CreateObject,都只能创建该对象的一个实例。若使用单个实例对象,当使用零长度字符串 ("") 语法调用时,GetObject 总是返回同一个实例,而如果省略 pathname 参数,则会出现错误。

复制代码代码如下:

Set oDOM = WScript.GetObject(WScript.Arguments(0))
do until oDOM.readyState = "complete"
WScript.sleep 200
loop
WScript.echo oDOM.documentElement.outerHTML

复制代码代码如下:

Set oDOM=WScript.GetObject("http://www.ip138.com/ip2city.asp")'就是取得这个对象
Do Until oDOM.readyState="complete" '一直循环等待200ms,直到页面加载完成
WScript.sleep 200'就是等待200ms
Loop
WScript.echo oDOM.documentElement.outerText'取得某个文本,并弹出对话框以显示此消息
Set oDOM=nothing'断开与对象的连接以释放内存。



本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/02/23/2364870.html ,如需转载请自行联系原作者。
目录
相关文章
【错误记录】Groovy 注入方法报错 ( Cannot add new method [hello] for arguments [[]]. It already exists )
【错误记录】Groovy 注入方法报错 ( Cannot add new method [hello] for arguments [[]]. It already exists )
126 0
【错误记录】Groovy 注入方法报错 ( Cannot add new method [hello] for arguments [[]]. It already exists )
【Unity3D 问题总结】Unity报错提示:InvalidOperationException: Collection was modified; enumeration operation ma
在Unity中运行场景时报错,报错内容如下 原因是在foreach中不能修改处理的集合,Foreach体内运用了对Collection的Remove方法(或者Add方法)
【Unity3D 问题总结】Unity报错提示:InvalidOperationException: Collection was modified; enumeration operation ma
VBS基础篇 - 对象(6) - Folder对象
VBS基础篇 - 对象(6) - Folder对象   描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的Getfolder方法获取文件的句柄   1、使用 CreateObject 方法来...
790 0
VBS基础篇 - 对象(5) - File对象
VBS基础篇 - 对象(5) - File对象   描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得。        使用File对象        要用File对象模型来编程必须先用FileSystemObject(FSO)对象的GetFile方法获取文件的句柄...
1071 0
VBS基础篇 - 对象(7) - TextStream对象
VBS基础篇 - 对象(7) - TextStream对象   TextStream对象是用于访问文本文件的对象,它是FileSystemObject一个独立的附属对象,但在使用TextStream对象时,我们仍要借助FileSystemObject 对象或其附属对象来创建一个 TextStream 对象并访问磁盘文件的内容。
1001 0
VBS基础篇 - 对象(3) - FileSystemObject对象
VBS基础篇 - 对象(3) - FileSystemObject对象     文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在Vbs中对桌面和文件系统进行访问的顶级对象是FileSystemObject(FSO),这个对象特别复杂,是vbs进行文件操作的核心。
903 0
VBS基础篇 - 对象(1) - Class对象
VBS基础篇 - 对象(1) - Class对象       相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的,对于代码量增大时,类的结构化就充分体现出了它强大的优势,下面我们就来看一下类的组成部分以及一些用法。
1129 0