创建 COM 对象.
ComObj := ComObject(CLSID , IID)
ComObject
本身是一个派生自 ComValue
的类, 但只用于创建或识别 COM 对象.
类型: 字符串
要创建的 COM 对象的 CLSID 或可读的 Prog ID.
类型: 字符串
要返回的接口的标识符. 在大多数情况下, 它是省略的; 如果省略, 它默认为 "{00020400-0000-0000-C000-000000000046}"
(IID_IDispatch).
类型: ComValue 或 ComObject
该函数返回一个 COM 包装器对象, 其类型取决于 IID 参数.
IID | Class | 变体类型 | 描述 |
---|---|---|---|
IID_IDispatch | ComObject |
VT_DISPATCH (9) | 允许脚本使用普通的对象语法来调用对象的属性和方法. |
任意其他 IID | ComValue |
VT_UNKNOWN (13) | 只提供一个 Ptr 属性, 允许对象被传递给 DllCall 或 ComCall. |
失败时抛出异常, 例如参数无效或对象不支持由 IID 指定的接口.
ComValue, ComObjGet, ComObjActive, ComObjConnect, ComObjArray, ComObjQuery, ComCall, CreateObject (Microsoft Docs)
有关更多的示例列表, 请参阅后面的的论坛主题: https://www.autohotkey.com/forum/topic61509.html.
启动 Internet Explorer 实例, 使其可见并导航到一个网站.
ie := ComObject("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 := ComObject(CLSID_ActiveDesktop, IID_IActiveDesktop) wszWallpaper := Buffer(cchWallpaper * 2) ComCall(GetWallpaper, AD, "ptr", wszWallpaper, "uint", cchWallpaper, "uint", AD_GETWP_LAST_APPLIED) Wallpaper := StrGet(wszWallpaper, "UTF-16") MsgBox "Wallpaper: " Wallpaper