使用BHO技术检测IE在浏览网页时下载到IE cache中的文件

关于BHO的使用介绍,可以参见

(1)Building Browser Helper Objects with Visual Studio 2005

链接地址:http://msdn.microsoft.com/en-us/library/bb250489.aspx

(2)Browser Helper Objects: The Browser the Way You Want It

链接地址:http://msdn.microsoft.com/en-us/library/bb250436%28v=vs.85%29.aspx

这两篇文章都已经在我前面的文章中进行了详细地介绍。

简单描述一下检测检测过程:

首先,我们需要捕获DISPID_STATUSTEXTCHANGE事件(因为我一直没有找到合适的事件来捕获所有的文件下载过程,当然,你可以试一试DISPID_DOCUMENTCOMPLETE,DISPID_DOWNLOADCOMPLETE以及DISPID_FILEDOWNLOAD等事件)

在Invoke函数中,添加如下事件处理代码:

STDMETHODIMP CIECacheFileDetecter::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pvarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)

{

USES_CONVERSION;

strstream strEventInfo;

if (!pDispParams)

return E_INVALIDARG;

switch (dispidMember)

{

...

case DISPID_STATUSTEXTCHANGE:

LPOLESTR lpStatusText;

m_spWebBrowser2->get_StatusText(&lpStatusText);

strEventInfo << "StatusTextChange: ";

if (!StrCmp(OLE2T(lpStatusText), _T("")))

{

ATLTRACE(_T("Status Text: NULL/n"));

}

else

{

LPCTSTR pszStatusText = OLE2T(lpStatusText);

LPCTSTR pszMatchKey = _T("http");

LPTSTR pszSubText = StrStr(pszStatusText,pszMatchKey);

if (NULL != pszSubText)

{

ATLTRACE(_T("Status Text Change: %s/n"),pszStatusText);

LPTSTR pszEnd = StrStr(pszSubText,_T("..."));

if (NULL != pszEnd)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值