加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

简单方法实现webbrowser不显示图片flash的功能。

发布时间:2020-12-15 07:07:26 所属栏目:百科 来源:网络整理
导读:因为需要webbrowser的文本内容而非图片,所以为了提高访问速度则不需要加载多余的图片flash等信息。 找了些文档,发现都是IE接口开发,实现复杂而且麻烦。为了赶工作量,只好通过一个捷径来实现了。 那就是HOOK Wininet的HttpOpenRequestW函数,webbrowser内

因为需要webbrowser的文本内容而非图片,所以为了提高访问速度则不需要加载多余的图片flash等信息。

找了些文档,发现都是IE接口开发,实现复杂而且麻烦。为了赶工作量,只好通过一个捷径来实现了。

那就是HOOK Wininet的HttpOpenRequestW函数,webbrowser内部是通过这个函数来响应请求的。

当然,弊端就是,如果程序中其他功能用到了这个函数,那也会直接被pass掉。


//HOOK核心功能,本人用到了CString,可自行替换掉,只需要过滤掉格式名返回0即可,webp什么的都可自行加入.
HINTERNET WINAPI nHttpOpenRequestW(HINTERNET hConnect,LPCWSTR lpszVerb,LPCWSTR lpszObjectName,LPCWSTR lpszVersion,LPCWSTR lpszReferrer,LPCWSTR FAR * lplpszAcceptTypes,DWORD dwFlags,DWORD_PTR dwContext){
	static CString sFilter = _T("gif|jpg|png|swf|jpeg");
	CString sObjectName = lpszObjectName; 
	if (sFilter.Find(sObjectName.Right(3)) !=-1)
		return (HINTERNET)0;
	return hhkHttpOpenRequestW(hConnect,lpszVerb,lpszObjectName,lpszVersion,lpszReferrer,lplpszAcceptTypes,dwFlags,dwContext);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读