用指定的 ProgID 检索现有的对象或从文件中创建新对象。
object.GetObject(strPathname [,strProgID], [strPrefix])
如果对象的实例存储在内存中,或者您要从文件创建对象,则使用 GetObject 方法。如果内存中没有当前的实例,并且您不希望从文件创建对象,则请使用 CreateObject 方法。GetObject 方法可用于所有的 COM 类,而与用于创建对象的语言无关。如果您提供 strPrefix 参数,则 WSH 会在创建对象后将该对象的输出接口连接到脚本文件。当对象引发事件时,WSH 将调用在事件名称开头附加 strPrefix 的子例程。例如,如果 strPrefix 是 MYOBJ_,
对象引发的事件名为 OnBegin
,则 WSH 调用脚本中的 MYOBJ_OnBegin
子例程。
如果某个对象被注册为单实例对象,则只创建该对象的一个实例(无论您执行了多少次 GetObject,都是如此)。GetObject 方法返回的实例总是与用零长度字符串语法 ("") 调用的实例相同,如果未提供路径参数,则会发生错误。GetObject 方法不能用于获得对用 Visual Basic 4.0 或更低版本创建的 Microsoft Visual Basic 类的引用。
下面的 VBScript 代码启动与指定的文件 (strPathname) 相关联的应用程序:
Dim MyObject As Object Set MyObject =GetObject(
"C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application
某些应用程序允许您激活文件的一部分。为此,在文件名的结尾处添加一个感叹号 (!),并在其后附加一个标识文件中要激活部分的字符串。例如,在绘图应用程序中,文件中存储的绘图可能有多层。下面的代码激活名为 SCHEMA.CAD
的绘图文件中的某一层:
Set LayerObject =GetObject(
"C:\CAD\SCHEMA.CAD!Layer3")
如果未指定对象的类 (strProgID),则 COM 确定要从该文件名启动的应用程序。某些文件可支持多个对象类。例如,某个绘图可能支持三个不同类型的对象:应用程序对象、绘图对象和工具栏对象。所有这些都可能在同一个文件中。
在下面的 VBScript 代码中,绘图应用程序 FIGMENT
从 SAMPLE.DRW
文件启动,并打开其中的 DRAWING
对象。
Dim MyObject As Object Set MyObject =GetObject(
"C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")