如何拦截或者得到当前WebBrowser的refresh(刷新)事件?

fonsea 2004-12-24 03:22:52
需要在用户刷新浏览器之后作些处理,通过DWebBrowserEvents2根本行不通。有什么好一点的办法吗?
...全文
453 点赞 收藏 6
写回复
6 条回复
fonsea 2005年01月03日
楼上的方法看了我一头雾水,com接口函数也能挂接吗?能给个demo或详细一点吗?
如果给出解决方案高分相送!
回复 点赞
fonsea 2004年12月30日
to: jiangsheng
这种方法根本就无法完全的对所有网页刷新进行handle啊。尤其是比较复杂的页面的时候。

正沿着这种思路探索看看。。。
回复 点赞
fromair 2004年12月30日
既然MS不提供好接口和方法,那我们就采用最狠的一招:挂接com接口的函数地址
不管是IE还是其他什么浏览器(只要是基于IE内核的),其刷新一定是调用当前IE窗口的IWebBrowser2接口的Refresh或者Refresh2方法。如果在每个IE窗口创建后得到其IWebBrowser2接口指针,获得Refresh函数的地址,根据该地址和com在内存中的结构改写该保存该函数地址的地址,就可以完全对Refresh事件进行控制了。
不过主要的问题是如何找到并且改写保存com接口函数的地址的地址,它不像挂接一般当前进程中的dll输出函数---只要找到输入地址表就可以找到保存函数地址的地址。
回复 点赞
gjd111686 2004年12月30日
是有问题,用IOleCommandTarget更是左右nCmdID均为Stop
回复 点赞
蒋晟 2004年12月25日
http://www.codeproject.com/internet/detecting_the_ie_refresh.asp
回复 点赞
Semigod 2004年12月24日
我也试着找了找相关资料,没有找到解决方法。
回复 点赞
发动态
发帖子
ATL
创建于2007-09-28

3025

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告