suj*_*jit 5 vbscript qtp autodesk
我使用UFT自动化Inventor 2013如下: -
Set oApp = GetObject(,"Inventor.Application")
Set oDoc = oApp.ActiveDocument
Here I'm using GetObject()
这里我使用GetObject()函数来获取运行Inventor Application的参考.但我对 Set oApp = GetObject(,"Inventor.Application")
Set oDoc = oApp.ActiveDocument
Here I'm using GetObject()功能有疑问
1)如何发现任何应用程序存在或处于运行状态?
2)如何访问特定应用程序的头类,以便我们访问该应用程序类的所有方法和属性?
任何人都能解释一下吗?
GetObject并且CreateObject是VBScript提供的COM自动化的一部分.VBScript无法使用Windows提供的所有COM对象.VBScript只能使用那些公开名为programmatic identifier(ProgID)的字符串的对象.虽然并非所有COM对象都具有ProgID,但所有COM对象都具有128位数字,称为类标识符或CLSID.如果COM对象具有ProgID,则可以使用VBScript实例化对象,调用其方法和属性,并销毁该对象.
GetObject并且CreateObject在某种程度上类似,但它们用于不同的目的.
如果需要创建对象的新实例,请使用CreateObject.
如果需要引用对象的现有实例,请使用GetObject.
GetObjectfunction有两个可选参数:(object's pathname即完整路径和文件名)和object's ProgID.虽然两个参数都是可选的,但您必须至少指定一个.如果省略两个参数,则会产生错误.例如:
Dim wordDoc
Set wordDoc = GetObject ("FilePath\FileName.doc")
Run Code Online (Sandbox Code Playgroud)
执行此代码时,将启动与指定路径名关联的应用程序,并激活指定文件中的对象.如果pathname是零长度字符串(""),则GetObject返回指定类型的新对象实例.如果省略pathname参数,则GetObject返回指定类型的当前活动对象.如果不存在指定类型的对象,则会发生错误.
如果指定ProgID但不指定路径名,则结果会根据您设置参数的方式而有所不同.如果传递空字符串作为代码中的第一个参数,例如
Set wordApp = GetObject("", "Word.Application")
Run Code Online (Sandbox Code Playgroud)
VBScript返回Word的Application对象的新实例(即,表示Word应用程序的对象).此GetObject调用等效于CreateObject调用
Set wordApp = CreateObject ("Word.Application")
Run Code Online (Sandbox Code Playgroud)
如果省略pathname参数但保留逗号
Set wordApp = GetObject (, "Word.Application")
Run Code Online (Sandbox Code Playgroud)
VBScript返回Application对象的现有实例(如果存在).