Post by youwantme » 28 May 2015, 00:30
这个问题我已经在其他网站找到了解决办法,亲测通过,转述如下:
cancel := true 是错误的写法,true在com里是-1,cancel是short不是int,所以应该是:
NumPut(-1, ComObjValue(Cancel), "short")
完整的可用代码为:
Code: Select all
Gui, Margin, 0, 0
Gui Add, ActiveX, w800 h500 vWB, Shell.Explorer
Gui, Show
ComObjConnect(WB, WB_events)
WB.Silent := True ; 这一句可以避免一些网页弹出脚本错误
WB.Navigate("http://internet.baidu.com/")
Return
class WB_events
{
NewWindow3(ppDisp, Cancel, dwFlags, bstrUrlContext, bstrUrl)
{
global WB
NumPut(-1, ComObjValue(Cancel), "short") ; 取消弹出新窗口
WB.Navigate(bstrUrl)
}
}
GuiClose:
ExitApp
这个问题我已经在其他网站找到了解决办法,亲测通过,转述如下:
[quote]
[color=#0000BF][size=150]cancel := true 是错误的写法,true在com里是-1,cancel是short不是int,所以应该是:
[/size][/color] [color=#FF4000][size=200]NumPut(-1, ComObjValue(Cancel), "short")[/size][/color]
[/quote]
完整的可用代码为:
[code]
Gui, Margin, 0, 0
Gui Add, ActiveX, w800 h500 vWB, Shell.Explorer
Gui, Show
ComObjConnect(WB, WB_events)
WB.Silent := True ; 这一句可以避免一些网页弹出脚本错误
WB.Navigate("http://internet.baidu.com/")
Return
class WB_events
{
NewWindow3(ppDisp, Cancel, dwFlags, bstrUrlContext, bstrUrl)
{
global WB
NumPut(-1, ComObjValue(Cancel), "short") ; 取消弹出新窗口
WB.Navigate(bstrUrl)
}
}
GuiClose:
ExitApp
[/code]