🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
| JScript  | [语言参考](#) | |-----|-----| # GetObject 函数 从文件中返回对 [Automation 对象](#) 的一个引用。 `**GetObject(**[*pathname*] [**,** *class*]**)**` #### 参数 pathname 可选项。 完整的文件路径和名称,文件中包含了要检索的对象。 如果忽略了 *pathname* ,那么需要 *class* 。 class 可选项。 对象的[类](#)。 类参数采用的语法是 *appname.objectype* ,包括了以下部分: appname 必选项。 提供对象的应用程序名称。 objectype 必选项。 要创建的对象的类的类型。 #### 说明 使用 **GetObject** 函数可以从文件中访问一个 Automation 对象。 可以将由 **GetObject** 返回的对象赋值给对象变量。 例如: ~~~ var CADObject; CADObject = GetObject("C:\\CAD\\SCHEMA.CAD"); ~~~ 在执行这段代码时,将启动与指定的 *pathname* 相关的应用程序,所指定文件中的对象将被激活。 如果 *pathname* 是长度为零的字符串 ("") ,那么 **GetObject** 将返回指定类型的一个新实例。 如果忽略了 *pathname* 参数,那么 **GetObject** 将返回指定类型的当前活动实例。 如果不存在指定类型的对象,那么将出错。 一些应用程序允许激活文件的一部分。要实现此功能,可以在文件名的尾部添加一个感叹号 (!) ,然后在感叹号后跟上一个字符串来指定要激活的文件部分。关于如何创建这个字符串的详细信息,请参阅创建该对象的应用程序的文档。 例如,在一个绘画应用程序中,可能在文件中存储了绘画的很多层次。 可以使用下面的代码激活名为 SCHEMA.CAD 的图画中的一层。 ~~~ var LayerObject = GetObject("C:\\CAD\\SCHEMA.CAD!Layer3"); ~~~ 如果没有指定对象的类, Automation 将根据所提供的文件名来决定要启动的应用程序和要激活的对象。 但是,一些文件可能支持不止一种对象的类。 例如,一个图画可能支持三种不同的对象类型:应用程序对象、绘画对象,以及工具栏对象,所有这些都是同一个文件中的部分。 要指定文件中希望激活的对象,可以使用可选的 *class* 参数。 例如: ~~~ var MyObject; MyObject = GetObject("C:\\DRAWINGS\\SAMPLE.DRW", "FIGMENT.DRAWING"); ~~~ 在前面的例子中,FIGMENT 是绘画应用程序的名称,而 DRAWING 是它支持的一种对象类型。 对象被激活后,可以使用定义的对象变量来引用它。 在前面的例子中,可以通过对象变量 MyObject 来访问新对象的属性和方法。 例如: ~~~ MyObject.Line(9, 90); MyObject.InsertText(9, 100, "Hello, world."); MyObject.SaveAs("C:\\DRAWINGS\\SAMPLE.DRW"); ~~~ **注意 **如果当前已经有了对象的实例,或者想要由已经加载了的文件创建对象,那么可以使用 **GetObject** 函数。 如果没有当前的实例,而且也不想由已经加载的文件来启动对象,那么可以使用 **ActiveXObject** 对象。 如果对象自身已经注册为单实例对象了,那么无论执行多少次 **ActiveXObject** 也只会创建对象的一个实例。 对于单实例对象, **GetObject** 在用长度为零的字符串 ("") 语法调用时总是返回相同的实例,而如果忽略了 *pathname* 参数就会出错。 #### 要求 [版本 5](#) #### 请参阅 [ActiveXObject 对象](#) [© 2000 Microsoft Corporation 版权所有。保留所有权利。使用规定。](#)