如题,谢谢指教。

解决方案 »

  1.   

    没试过,但是可以自己写浏览器处理HTTP等协议,或者做网络过滤器
      

  2.   

    我实现了IInternetProtocolRoot,IInternetProtocol等接口,即使用Pluggable Namespace Handler技术(此技术用于自己的进程内,对应的技术是Asynchronous Pluggable Protocol,是用于所有进程的)。可是遇到3721, 百度的就实效了,可是返回值却是正确的。没有他们,就正常不过我没有用Pluggable Namespace Handler技术来过滤html不会是我的代码实现有点问题吧?有谁做过?网络过滤器什么意思?截获网络数据包?我已经考虑用Hook API的方法了,只是我的程序对WSARecv的截获有点小问题,单步跟踪的时候是对的,Release调用原 WSARecv 函数返回值是-1,不知道是我的代码有错误还是Hook有问题
      

  3.   

    我用过Pluggable Namespace Handler来拦截插件,感觉一般,不是太爽,可能是自已对它了解的太少吧。
    我觉得你要是拦截HTML源码不能用Pluggable Namespace Handler,应该用Pluggable MIME Filters
    我也没实际做过拦截过,不过见过一个DELPHI源码,是这样实现的
      

  4.   

    楼上,你的方法是一种方法,但不太可取,最新发现IE就是使用的WinInet的函数,Hook其就可以了,我原来也Hook了WinInet,但没有找对函数
      

  5.   

    楼主,你是说,Hook WinInet就可以?你实现了吗?
      

  6.   

    用Hook的话是非常痛苦的
    因为你的数据是分片到达的,而不是一整块数据
    建议还是从IE 的COM组件入手
      

  7.   

    你说得很对,Hook WinInet会导致一些IE的状态不太正常,比如下载未完成等,同样,Hook Socket数据也是分片到达的(不过好像比前者还要容易些),IE用的是异步http的方式,前者要处理InternetStatusCallback,后者要处理异步socket我也是想用COM入手,不过用Pluggable Namespace Handler技术,没有3721,百度等的时候很正常,他们存在就完全失效,除了这个方法,我找不到合适的方法,据观察,3721等没有使用Pluggable MIME Filters
      

  8.   

    用Bho
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/bho.asp
      

  9.   

    这篇文章可能说的更清楚一些
    http://www.microsoft.com/mind/0598/browhelp.asp
      

  10.   

    用BHO取得IE的文档已经是IE加载之后了,这个时候改已经没什么用处了,IE已经显示网页里的元素了,这样要的是IE加载之前,没被处理之前
      

  11.   

    谁告诉你的??用BHO取得IE的文档完全可以在IE显示之前对文档做出处理,3721,google都用到了BHO技术,不信你可以到注册表去查.
      

  12.   

    BHO是用来过滤弹出窗口和浮动广告的,对于过滤Flash等完全做不到,是否在IE显示前就对文档处理,你自己试试就知道了,我不想多说经过研究,现在基本上做到了跟3721一样的效果,处理的方法是类似的(毛病就是无法正常显示透明的Flash),不过他比我的稍微早一两步,百度的方法比较奇怪,目前还没有弄明白,但是却可以显示透明的Flash,至于Google,MSN等那就是比较简单的了,基本上就是BHO之所以Pluggable Namespace Handler技术无法凑效,使因为下载根本就没有开始,如果正常的IE加载过程,Pluggable Namespace Handler技术是可以截到下载的文件的,但处理后会使IE一直处于下载未完成的状态
      

  13.   

    "否在IE显示前就对文档处理,你自己试试就知道了"我可以很诚实的说确实试过,至少在DocumentComplete或DownLoadComplete我没看到我想要的内容,老大你自己试过没有啊
      

  14.   

    呵呵,不好意思,我试是一个比较bt的网页,DocumentComplete的确是在网页显示以后响应的
      

  15.   

    http://www.codeproject.com/atl/popupblocker2.asp
    这个例子,能实现你要的功能!
      

  16.   

    看了一下popupblocker2,它是IE加载之后才过滤的(除了弹出窗口以外)其实我的代码很多部分是参考它的,虽然我看的原始代码不是popupblocker2的,但Flash过滤和浮动层的判断都得自己重新写过
      

  17.   

    楼主或者可以试试处理一下DISPID_PROGRESSCHANGE
      

  18.   

    都是强人,Mark一下,有空继续学习。
      

  19.   

    晕,我在试验popupblocker2时,找不到DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN的定义
    ???
      

  20.   

    VC6需要升级到VC.Net,或者下载平台SDK中的IE的SDK