GetObject 方法

从文件中检索一个 Automation 对象, 或检索strProgID 参数所指定的对象

object.GetObject(strPathname [,strProgID], [strPrefix])

参数

object

WScript 对象。

strPathname

必选项。包含要获取的对象的完整路径和名称。

strProgID

可选项。表示对象的程序标识符(ProgID)的字符串。

strPrefix

可选项。如果指定了参数 strPrefix,Windows 脚本宿 主将在创建对象之后把对象的输出接口与脚本文件连接起来。在对象中触发事件时,Windows 脚本宿主将调用一个子例程,其名称包括 strPrefix 和事件的名称。

例如,如果 strPrefix 为 "MYOBJ_",对象产生的事件为 "OnBegin,",那么 Windows 脚本宿主将调用脚本中的 "MYOBJ_OnBegin" 子例程。

说明

如果当前存在对象的实例或者希望使用已经被装载的文件创建对象,可使用 GetObject 方法。如果当前不存在实例,而且不希望 从已经装载的文件中启动对象,请使用 CreateObject 方法。

如果一个对象将自己注册为单实例对象(例如,Microsoft Word 7.0 中的 Word.Basic 对象),那么无论执行 CreateObject 多少次也只能创建对象的一个实例。此外,对于单实例的对象,如果用零长度的字符串语法("")调用,GetObject 总是返回同样的实例,而且如果省略路径参数将导致错误。使用 GetObject 不能获得对 Visual Basic 4.0 以及以前版本创建的 Microsoft Visual Basic(R)类的引用。

GetObject 适用于所有的 COM 类,不受创建对象所用语言的限制。

示例

在执行下列代码时,与指定的 strPathname 相关联的应用程序被启动,指定文件中的对象被激活。 如果 strPathname 是一个零长度的字符串 (""), GetObject 将返回指定类型的新对象实例。如果 strPathname 参数完全被省略,GetObject 将返回指定类型的当前活动对象。如果不存在指定类型的对象,将发生错误。

Dim MyObject As Object
Set MyObject = GetObject("C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application

某些应用程序允许激活一个文件的某些部分。如果要这样做,需要在文件名后添加一个惊叹号 (!),然后跟一个字符串,标识出文件中希望被激活的部分。关于如何创建该字符串的信息,请参阅创建对象的应用程序的有关文档。

例如,在一个绘图应用程序中,文件中存储的一幅图可能包含多层。可以使用下面的代码激活绘图文件中称为 schema.cad 的一层:

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

如果不指定对象的类,COM 将根据所提供的文件名来确定要启动的应用程序和要激活的对象。但是,某些文件可能支持多个对象类。例如,一幅图纸可能支持三种不同类型的对象:一个应用程序对象,一个绘图对象,以及一个工具栏对象,它们都是同一个文件的组成部分。

在下例中,FIGMENT 是一个绘图应用程序的名称,DRAWING 是它支持的对象类型之一。

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

请参阅

CreateObject 方法 | DisconnectObject 方法

应用于: WScript 对象