我认为Shell.Explorer意味着AutoHotkey中的Webbrowser控件。
但是当我查看NavigateError
事件的参数输出时,它与MSDN页面中描述的略有不同。
我在MSDN上找到了NavigateError
的两个不同页面。
由于第二个参数显示带有以下代码的url,我猜AutoHotkey正在使用DwebBrowserEvents2接口,但MSDN页面表示该方法接受5个参数,而AutoHotkey接收其中6个。
new WBConttrol("file:///" A_ScriptDir "/nofile")
class WBConttrol {
NavigateError(oParams*) {
msgbox, 64, % Parameters, % "the number of passed parameters: " oParams.MaxIndex() "`n"
. "1: " (IsObject(oParams.1) ? "object" : oParams.1) "`n"
. "2: " (IsObject(oParams.2) ? "object" : oParams.2) "`n" ; url
. "3: " (IsObject(oParams.3) ? "object" : oParams.3) "`n"
. "4: " (IsObject(oParams.4) ? "object" : oParams.4) "`n"
. "5: " (IsObject(oParams.5) ? "object" : oParams.5) "`n"
. "6: " (IsObject(oParams.6) ? "object" : oParams.6) "`n"
}
__New(strURL="") {
static WB
Gui, New, Resize MaximizeBox
Gui, Add, ActiveX, vWB w300 h200, Shell.Explorer
Gui, show, w300 h200
ComObjConnect(WB, this)
WB.Navigate(strURL)
}
}
答案 0 :(得分:0)
Shell.Explorer
确实意味着WebBrowser控件。
额外(第六个)参数在ComObjConnect()的文档中定义:
PrefixEventName([Params ..., ComObject ])
...
ComObject 是可选的,只有在定义了正确数量的Params时才能使用它;它包含对传递给ComObjConnect的原始包装器对象的引用。
这个额外参数的原因是某些COM事件方法根本没有定义任何参数,因此不提供对引发事件的COM对象的引用。