NavigateComplete2 并不是代表网页加载完成,而是代表导航(打开网址)完成。
DocumentComplete 事件才表示加载完毕。获取标题的话,用 TitleChange 事件最合适了。(了解更多事件 ->
https://msdn.microsoft.com/en-us/librar ... s.85).aspx)
Code: Select all
gui,new
Gui ,+Resize
Gui, Add, Tab2,x0 y0 w1280 h720 vTabGroup HwndHTab, General|New ;添加组框架,包含两页
Gui,Tab,General ;对第一页进行设置
Gui, Add, ActiveX, w1270 h700 vWB, Shell.Explorer ;把浏览器添加到第一页
Gui,Tab,New
Gui, Add, ActiveX, w1270 h700 vWB2, Shell.Explorer
Gui, Tab ; 随后的控件不属于任何选项卡控件的一部分.
Gui,Show
global HTab ; <-- 全局变量,在函数中可访问
WB.Silent := True ; 这一句可以避免一些网页弹出脚本错误
WB.Navigate("http://www.sohu.com")
ComObjConnect(WB, wb1_Events) ; 连接WB事件到WB1_events类对象
WB2.Silent := True ; 这一句可以避免一些网页弹出脚本错误
WB2.Navigate("http://www.baidu.com")
ComObjConnect(WB2, wb2_Events) ; 连接WB事件到WB2_events类对象
Return
class wb1_Events {
TitleChange(title) {
TabSetText(HTab, 1, title)
}
}
class wb2_Events {
TitleChange(title) {
TabSetText(HTab, 2, title)
}
}
Return
GuiClose:
ExitApp
DisableSetRedraw() {
static _ := OnMessage(0x0B, "DisableSetRedraw") ; WM_SETREDRAW = 0x0B
return 0
}
TabSetText(HTAB, Item, ItemText) { ; Extracted from just me's Class_GuiTabEx.ahk
Static TCIF_TEXT := 0x0001
Static OffTxP := (3 * 4) + (A_PtrSize - 4)
Static TCM_SETITEM := A_IsUnicode ? 0x133D : 0x1306 ; TCM_SETITEMW : TCM_SETITEMA
Static Size := (5 * 4) + (2 * A_PtrSize) + (A_PtrSize - 4)
VarSetCapacity(TCITEM, Size, 0)
NumPut(TCIF_TEXT, TCITEM, 0, "UInt")
NumPut(&ItemText, TCITEM, OffTxP, "Ptr")
SendMessage, TCM_SETITEM, Item - 1, &TCITEM, , % "ahk_id " . HTAB
}