; 将当前窗口的底部任务栏隐藏3秒后,再恢复的示例 /* AHK帮助文档的示例搜:使用 COM 从任务栏暂时地移除活动窗口. ITaskbarList 的 VTable 中的方法: IUnknown: 0 QueryInterface -- 使用 ComObjQuery() 代替 1 AddRef -- 使用 ObjAddRef() 代替 2 Release -- 使用 ObjRelease() 代替 ITaskbarList: 3 HrInit 4 AddTab 5 DeleteTab 6 ActivateTab 7 SetActiveAlt */ IID_ITaskbarList := "{56FDF342-FD6D-11d0-958A-006097C9A090}" CLSID_TaskbarList := "{56FDF344-FD6D-11d0-958A-006097C9A090}" ; 创建 TaskbarList 对象并把它的地址保存到 tbl. tbl := ComObjCreate(CLSID_TaskbarList, IID_ITaskbarList) activeHwnd := WinExist("A") DllCall(vtable(tbl,3), "ptr", tbl) ; tbl.HrInit () DllCall(vtable(tbl,5), "ptr", tbl, "ptr", activeHwnd) ; tbl.DeleteTab (activeHwnd) Sleep 3000 DllCall(vtable(tbl,4), "ptr", tbl, "ptr", activeHwnd) ; tbl.AddTab (activeHwnd) ; 非 dispatch 对象总是需要手动释放. ObjRelease(tbl) vtable(ptr, n) { ; NumGet(ptr+0) 返回对象的虚函数表 ; (简称为 vtable) 的地址. 表达式的其余部分从 ; vtable 中获取第 n 个函数的地址. return NumGet(NumGet(ptr+0), n*A_PtrSize) }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)