ComObjCreate

创建 COM 对象.

ComObject := ComObjCreate(CLSID , IID)

参数

CLSID

类型: 字符串

要创建的 COM 对象的 CLSID 或可读的 Prog ID.

IID

类型: 字符串

要返回的接口的标识符. 在大多数情况下, 它是省略的; 如果省略, 它默认为 "{00020400-0000-0000-C000-000000000046}"(IID_IDispatch).

返回值

类型: ComObject

该函数返回一个 COM 包装器对象.

如果省略了 IID 或标识了 IDispatch 接口, 则包装对象的类型为 VT_DISPATCH(9), 脚本可以使用正常的对象语法调用对象的属性和方法. 否则, 包装对象的类型为 VT_UNKNOWN(13)。在这两种情况下, ComCall 都可以用来调用原生接口方法.

错误处理

失败时抛出异常, 例如参数无效或对象不支持由 IID 指定的接口.

ComObject, ComObjGet, ComObjActive, ComObjConnect, ComObjArray, ComObjQuery, ComCall, CreateObject (MSDN)

示例

有关更多的示例列表, 请参阅后面的的论坛主题: https://www.autohotkey.com/forum/topic61509.html.

启动 Internet Explorer 实例, 使其可见并导航到一个网站.

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true  ; 此语句在 IE7 中无法正常执行.
ie.Navigate("https://www.autohotkey.com/")

检索桌面当前壁纸的路径.

AD_GETWP_BMP := 0
AD_GETWP_LAST_APPLIED := 0x00000002
CLSID_ActiveDesktop := "{75048700-EF1F-11D0-9888-006097DEACF9}"
IID_IActiveDesktop := "{F490EB00-1240-11D1-9888-006097DEACF9}"
cchWallpaper := 260
GetWallpaper := 4

AD := ComObjCreate(CLSID_ActiveDesktop, IID_IActiveDesktop)
wszWallpaper := BufferAlloc(cchWallpaper * 2)
ComCall(GetWallpaper, AD, "ptr", wszWallpaper, "uint", cchWallpaper, "uint", AD_GETWP_LAST_APPLIED)
Wallpaper := StrGet(wszWallpaper, "UTF-16")
MsgBox "Wallpaper: " Wallpaper
dftg