说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用WebBrowser控件定制浏览器,如何控制不让下载网页中的图像或Flash或背景音乐之类的东西?

编辑:说三道四文库 发布时间:2018-06-24 07:32
HTML文档下载 WORD文档下载 PDF文档下载
也就是WebBrowser加载页面时,只显示主页面HTML本身的文字等内容,不下载<img> <object>等标签链接的内容? 
不下载不会,不显示倒会的.
引用 1 楼 dylike 的回复:
不下载不会,不显示倒会的.

请指教,不显示又要怎么做?
不显示么,就是通过httpwebreauest加载源文件,然后去除或修改里面视频音频方面的代码,然后显示在webbrowser中
引用 3 楼 dylike 的回复:
不显示么,就是通过httpwebreauest加载源文件,然后去除或修改里面视频音频方面的代码,然后显示在webbrowser中

那么网页中的相对链接会不会变掉呢,比如原来的网页中:
<a href="/rich/">下一页</a>原来是指http://www.yuneach.com/rich/会不会变掉?
修改只是修改需要修改的地方如<img src=... 这需要通过源文件分析来修改,由于不去动<a href=... 所以不必担心链接会变
好的,谢谢。再有一个问题,如果我用WebBrowser直接加载URL的话,可以将Cookies等信息送给服务器端,用httpwebrequest可以吗?

就比如我已经在访问http://community.csdn.net/时选择了“两周内自动登录”,那么我用WebBrowser打开这个网址时,显示的内容是登录用户的,如果我用httpwebrequest。得到的内容是登录用户的,还是登录用户的?
可以的.不过我对httpwebrequest不是很熟悉.我主要是做GDI+界面设计.不好意思.
楼主应该另开一个贴了,结贴吧
dylike的解决思路很清晰了
引用 8 楼 hrbwgs1111 的回复:
楼主应该另开一个贴了,结贴吧

为什么要另开一贴,现在还是讨论这个问题呐

我试dylike的方法先.
STDMETHODIMP CBrowserView::XDispatch::Invoke(
DISPID dispid, REFIID, LCID, unsigned short /*wFlags*/,
DISPPARAMS* /*pDispParams*/, VARIANT* pvarResult,
EXCEPINFO*, unsigned int*)
{
    switch (dispid)
    {
case DISPID_AMBIENT_DLCONTROL:
pvarResult->vt = VT_I4;
pvarResult->lVal =  0;
if (m_BrowserView->m_bShowImages) 
{//如果需要显示图片
pvarResult->lVal |= DLCTL_DLIMAGES;
}
if(m_BrowserView->m_bShowVideos)
{//如果需要显示视频
pvarResult->lVal |= DLCTL_VIDEOS;
}
if(m_BrowserView->m_bShowBgSounds)
{//如果需要播放背景音乐
pvarResult->lVal |= DLCTL_BGSOUNDS;
}

if(!m_BrowserView->m_bPlayFlash)
{//如果不播放flash(禁止执行OCX控件)
pvarResult->lVal |= (DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_DLACTIVEXCTLS | DLCTL_SILENT);
}
break;

default:
return DISP_E_MEMBERNOTFOUND;
    }

    return S_OK;
}
上面是我写的浏览器中与你问题相关的一代码片段,拷贝的时候格式变了,你自己调整了再看吧。
本人浏览器的博客是 http://bluebee.blog.51cto.com
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘