前段时间写了一个控制IE浏览器进行浏览的代码,现总结:
相关的东西,网上已经有很多资料了,本人认为写得比较好、全的有:
关于几个HTML文档接口的使用探讨 —— vckbase
DOM应用---遍历网页中的元素 —— vckbase
[Delphi]怎样访问Internet Explorer中的WebBrowser
主要有两种方式
1、使用 IShellWindows 获取当前浏览器个数(webbrowser个数),然后枚举获取webbrowser实例
2、使用ObjectFromLresult 函数从进程窗口获取webbrowser实例
需要注意的是,两种方式其实都是采用了OLE的原理来获取webbrowser的,现在主流的主动防御软件都会报。
在第1种方式中已经直接获得了webbrowser的实例,但是在第2种方式中,只是获得了IHTMLDocument2 的接口,如何通过该接口获取到webbrowser实例呢?
当获得了webbrowser实例以后,就可以调用webbrowser的方法来控制浏览器的行为,比如停止、刷新等等。但是,在实际测试过程中,发现其他方法都可以,唯独Navigate不行,在暂时找不到原因的情况下,由另外一种方式来实现:
获取IHTMLDocument2 接口对应的window
然后调用spWin->execScript方法来调用脚本,众所周知脚本是异常强大的,只要可以执行脚本,就可以做很多我们想要浏览器做的事。比如要浏览指定页面,就可以这样写
至于获取结果嘛,连IHTMLDocument2 的接口已经获得了,基本可以获得一切了。网上代码很多。