Vbscript getObject函数在内部是如何工作的?
我正在使用UFT自动化Inventor 2013,如下所示:-Vbscript getObject函数在内部是如何工作的?,vbscript,qtp,autodesk,Vbscript,Qtp,Autodesk,我正在使用UFT自动化Inventor 2013,如下所示:- Set-oApp=GetObject(,“Inventor.Application”) 设置oDoc=oApp.ActiveDocument 这里我使用GetObject()函数获取运行Inventor应用程序的参考。 但是我有一个关于GetObject()函数的问题 1) 它如何发现任何应用程序存在或处于运行状态 2) 它如何访问特定应用程序的头类,以便我们访问该应用程序类的所有方法和属性 有人能解释一下吗?获取对象和创建对象是V
Set-oApp=GetObject(,“Inventor.Application”) 设置oDoc=oApp.ActiveDocument
这里我使用函数获取运行Inventor应用程序的参考。 但是我有一个关于GetObject()
函数的问题 1) 它如何发现任何应用程序存在或处于运行状态 2) 它如何访问特定应用程序的头类,以便我们访问该应用程序类的所有方法和属性GetObject()
有人能解释一下吗?获取对象和
。尽管这两个参数都是可选的,但必须至少指定一个。如果省略这两个参数,将导致错误。例如:创建对象是VBScript提供的COM自动化的一部分。VBScript无法使用通过Windows提供的所有COM对象。VBScript只能使用那些公开称为编程标识符的字符串的对象(
)。尽管并非所有COM对象都有ProgID,但所有COM对象都有一个128位的编号,称为类标识符或CLSID。如果COM对象具有ProgID,则可以使用VBScript实例化该对象,调用其方法和属性,并销毁该对象ProgID
和GetObject
的工作方式类似,但用途不同。CreateObject
如果需要创建对象的新实例,请使用CreateObject。
如果需要引用对象的现有实例,请使用GetObject函数有两个可选参数:对象的路径名(即完整路径和文件名)和对象的ProgIDGetObject
执行此代码时,将启动与指定路径名关联的应用程序,并激活指定文件中的对象。如果路径名是长度为零的字符串(“”),则GetObject返回指定类型的新对象实例。如果省略pathname参数,GetObject将返回指定类型的当前活动对象。如果不存在指定类型的对象,则会发生错误 如果指定ProgID而不是路径名,则结果会因设置参数的方式而异。如果在代码中传递空字符串作为第一个参数,例如Dim wordDoc Set wordDoc = GetObject ("FilePath\FileName.doc")
VBScript返回Word应用程序对象的新实例(即,表示Word应用程序的对象)。此GetObject调用相当于CreateObject调用Set wordApp = GetObject("", "Word.Application")
如果省略pathname参数,但保留逗号Set wordApp = CreateObject ("Word.Application")
VBScript返回应用程序对象的现有实例(如果存在)Set wordApp = GetObject (, "Word.Application")
有关详细信息,请检查和链接。关闭错误检查,尝试,然后测试GetObject
。如果inventor正在运行,则调用将成功,err.number 0
将为err.number
,否则将为0
error(我认为) 为424
的每个变体进行的API调用在中有详细说明 从上面的链接 GetObject(文件名,ProgID) GetObject(文件名) GetObject(ProgID) 您可以在此处查找每个单独的函数调用 乙二醇 CLSIDFromProgID函数 给定ProgID,在注册表中查找CLSID 语法GetObject
HRESULT CLSIDFromProgID( _In_ LPCOLESTR lpszProgID, _Out_ LPCLSID lpclsid );
App Inventor与Autodesk Inventor 2013不同。我为你更新了标签…非常感谢你的回答,很多有用的信息肯定会帮助我。只是提醒一下,错误代码是429 ActiveX组件无法创建对象。CreateBindCtx creates the bind context for the subsequent functions. MkParseDisplayName returns a moniker handle for BindMoniker. BindMoniker returns a pointer to the IDispatch interface. Release on moniker handle. Release on context.
CLSIDFromProgID GetActiveObject on class ID. QueryInterface to get IDispatch interface.
HRESULT CLSIDFromProgID( _In_ LPCOLESTR lpszProgID, _Out_ LPCLSID lpclsid );