【ahk】用标题名称激活IE指定tab

27 篇文章 0 订阅
15 篇文章 0 订阅
;功能:激活IE指定tab
/*
测试方法:
打开IE 依次访问
http://www.baidu.com/
http://cn.bing.com/
百度处于不激活状态、必应处于激活状态。
*/

;作者:sunwind
;时间:2015年1月18日01:03:16
;问题反馈:qq 1576157
;测试环境:IE8
;操作系统:WIN7 64
;AHK版本:AutoHotkey Unicode 32-bit 1.1.16.4





iWeb_Activate("百度一下,你就知道")
sleep,1000 
iWeb_Activate("微软必应搜索 - 全球搜索,有问必应 (Bing)") 
return
	iWeb_Activate(sTitle) 
	{ 
		; thanks Sean 
		; http://www.autohotkey.com/forum/viewtopic.php?p=231093#231093 
		DllCall("LoadLibrary", "str", "oleacc.dll") 
		DetectHiddenWindows, On 
		;~ WinActivate,% "ahk_id " HWND
		;~ WinWaitActive,% "ahk_id " HWND,,5
		ControlGet, hTabBand, hWnd,, TabBandClass1, ahk_class IEFrame
		ControlGet, hTabUI  , hWnd,, DirectUIHWND1, ahk_id %hTabBand% 
		
		If   hTabUI && DllCall("oleacc\AccessibleObjectFromWindow", "Uint", hTabUI, "Uint",-4, "Uint", GUID(IID_IAccessible,"{618736E0-3C3D-11CF-810C-00AA00389B71}"), "UintP", pacc)=0 
		{ 
			Loop, %   pacc.accChildCount 
				If   paccChild:=pacc.accChild[A_Index] 
					If   paccChild.accRole[0] = 0x3C 
					{ 
						paccTab:=paccChild 
						Break 
					} 
		} 
		If   pacc:=paccTab 
		{ 
			Loop, %   pacc.accChildCount 
				If   paccChild:=pacc.accChild[A_Index] 
					If   paccChild.accName[0] = sTitle   
					{ 
						paccChild.accDoDefaultAction[0]
						Break 
					} 
		}  
		WinActivate,% sTitle
	} 
	
GUID(ByRef GUID, sGUID) ; Converts a string to a binary GUID and returns its address.
{
    VarSetCapacity(GUID, 16, 0)
    return DllCall("ole32\CLSIDFromString", "wstr", sGUID, "ptr", &GUID) >= 0 ? &GUID : ""
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值