VB6 控制IE弹出模式窗口
最近一个小项目,开发一个插件,需要对一个第三方系统的网页内容进行操作.操作的内容还比较复杂.自然选择用BHO做.
做到一半卡住了,原因在于这个网站有一个showmodal的模式窗口,需要对这个弹出的模式窗口也进行控制.
但是找遍了DOM和IE的各个接口也没找到能控制或捕获弹出窗口内容的东西.
虽然可以重写弹出窗口的代码,改用window.open方式弹出,再进行捕获,但因为那网站的弹出窗口还带了复杂的参数,不方便转换,所以保持不能改他的代码.
既然从IE方向无法下手,就只能改变方向,从Windows窗口方向下手.因为弹出窗口也是窗口,可以进行捕获弹出窗口句柄,然后遍历出Webbrowser控制句柄,再转换成Document对象.得到Document对象就可以对网页进行随意控制了.
关键代码如下:
hr = ObjectFromLresult(lRes, IID_IHTMLDocument, 0, IEDOMFromhWnd) 'MsgBox "HR:" & hr End If End IfEnd IfEnd Function这里利用Active Accessibility组件获取的Document对象.
通过上面的代码就完成了对IE弹出模块窗口的控制.其中WIN7和XP下调用API的一些差别让我走了不少弯路,现在还不明白这些差异是如何产生的,希望了解真相的人士指点一二.