gpt4 book ai didi

vbscript - getObject 函数内部如何工作?

转载 作者:行者123 更新时间:2023-12-04 19:03:09 26 4
gpt4 key购买 nike

我正在使用 UFT 自动化 Inventor 2013,如下所示:-
Set oApp = GetObject(,"Inventor.Application")
Set oDoc = oApp.ActiveDocument

我在这里使用 GetObject()函数以获取运行 Inventor 应用程序的引用。
但我有关于 GetObject() 的问题功能

1)它如何发现任何应用程序存在或处于运行状态?

2)它如何访问特定应用程序的头类,以便我们访问该应用程序类的所有方法和属性?

有人可以解释一下吗?

最佳答案

GetObject CreateObject 是 VBScript 提供的 COM 自动化的一部分。 VBScript 不能使用所有可通过 Windows 获得的 COM 对象。 VBScript 只能使用那些公开称为程序标识符( ProgID )的字符串的对象。尽管并非所有 COM 对象都有 ProgID,但所有 COM 对象都有一个 128 位数字,称为类标识符或 CLSID。如果 COM 对象具有 ProgID,则可以使用 VBScript 来实例化该对象、调用其方法和属性并销毁该对象。

GetObject CreateObject 以某种方式工作,但它们用于不同的目的。
如果需要创建对象的新实例,请使用 CreateObject。
如果需要引用对象的现有实例,请使用 GetObject。

GetObject 函数有两个可选参数:object's pathname (即,完整路径和文件名)和 object's ProgID .尽管这两个参数都是可选的,但您必须至少指定一个。如果省略这两个参数,则会导致错误。例如:

Dim wordDoc
Set wordDoc = GetObject ("FilePath\FileName.doc")

执行此代码时,将启动与指定路径名关联的应用程序并激活指定文件中的对象。如果路径名是零长度字符串 (""),则 GetObject 返回指定类型的新对象实例。如果省略路径名参数,GetObject 返回指定类型的当前事件对象。如果不存在指定类型的对象,则会发生错误。

如果您指定 ProgID 而不是路径名,结果会因您设置参数的方式而异。如果您将空字符串作为代码中的第一个参数传递,例如
Set wordApp = GetObject("", "Word.Application")

VBScript 返回 Word 应用程序对象的新实例(即代表 Word 应用程序的对象)。此 GetObject 调用等效于 CreateObject 调用
Set wordApp = CreateObject ("Word.Application")

如果省略路径名参数但保留逗号
Set wordApp = GetObject (, "Word.Application")

如果存在,VBScript 将返回 Application 对象的现有实例。

如需更多信息,请查看 this this 链接。

关于vbscript - getObject 函数内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com