打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Webbrowser控件 怎么样禁用ActiveX 脚本
http://www.itzhe.cn/article/20080528/146926.html
 Webbrowser控件 怎么样禁用ActiveX


在VC对话框程序中,加入一WebBrowser Control, 相当于自己写了一个基于IE内核的浏览器。问题是:在Navigate一个网页后,怎么让它不加载ActiveX并且不运行javascript(禁用js引擎)。
本人研究了好多关于IE内核编程的东西,但还是没有找到解决方案。欢迎大家一块来讨论这个问题。

网友回复:处理IDocHostUIHandler::GetHostInfo(DOCHOSTUIINFO *pInfo);
DOCHOSTUIINFO的dwFlags中包含DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE

MSHTML does not execute any script until fully activated. This flag isused to postpone script execution until the host is active and,therefore,
 ready for script to be executed.



再加上DLCTL_NO_DLACTIVEXCTLS 和 DLCTL_NO_RUNACTIVEXCTLS可禁止加载ActiveX。


http://www.vckbase.com/document/viewdoc/?id=1486

看这篇文章

STDMETHODIMP CCustomControlSite::XInternetSecurityManager
    ::ProcessUrlAction(    /* [in] */ LPCWSTR pwszUrl,
    /* [in] */ DWORD dwAction,
    /* [size_is][out] */ BYTE __RPC_FAR *pPolicy,
    /* [in] */ DWORD cbPolicy,
    /* [in] */ BYTE __RPC_FAR *pContext,
    /* [in] */ DWORD cbContext,
    /* [in] */ DWORD dwFlags,
    /* [in] */ DWORD dwReserved)
{
 
    METHOD_PROLOGUE(CCustomControlSite, InternetSecurityManager)
 
    DWORD dwPolicy=URLPOLICY_ALLOW;
 
    BOOL bNoActiveX=FALSE;
    BOOL bNoJava=TRUE;
    BOOL bNoScript=FALSE;
    BOOL bCrossData=TRUE;
 
    if (dwAction <= URLACTION_ACTIVEX_MAX && dwAction >= URLACTION_ACTIVEX_MIN)
        dwPolicy = bNoActiveX ? URLPOLICY_DISALLOW : URLPOLICY_ALLOW;
    else if ((dwAction <= URLACTION_JAVA_MAX && dwAction >= URLACTION_JAVA_MIN) ||
        URLACTION_HTML_JAVA_RUN == dwAction)
        if (bNoJava)
            dwPolicy = URLPOLICY_JAVA_PROHIBIT;
        else
            return INET_E_DEFAULT_ACTION;
    else if (dwAction <= URLACTION_SCRIPT_MAX && dwAction >= URLACTION_SCRIPT_MIN)
        dwPolicy = bNoScript ? URLPOLICY_DISALLOW : URLPOLICY_ALLOW;
    // !! If the compiler can't find URLACTION_CROSS_DOMAIN_DATA, make sure you are building with
    // !! the latest version of the IE headers -- URLMON.H specifically -- from MSDN Downloads for the 
    // !! Web Workshop or the Platform SDK
    else if (URLACTION_CROSS_DOMAIN_DATA == dwAction)
        dwPolicy = bCrossData ? URLPOLICY_ALLOW : URLPOLICY_DISALLOW;
    else
        return INET_E_DEFAULT_ACTION;
 
    if ( cbPolicy >= sizeof (DWORD))
    {
        *(DWORD*) pPolicy = dwPolicy;
        return S_OK;
    
    else 
    {
        return S_FALSE;
    }
 
}


WebBrowser屏蔽安装插件弹出的安全警告窗口

在写自定义的IWebBrowser2接口浏览器的时候,禁止了他加载Flash控件,它弹出了如下的安全窗口,怎样才能够屏蔽掉这个插件安装的安全警告窗口?要实现哪个COM接口呢?

Rob Pan

根据您的描述,我建议您可以使用IWebBrowser2::Silent属性。这个属性可以帮您获取和设置是否显示弹处窗口。您可以设置VARIANT_TRUE来屏蔽窗口。您可以从以下地址获取更多信息:http://msdn.microsoft.com/en-us/library/ie/aa768269(v=vs.85).aspx

cppcoffee
Rob Pan 你好

你的方法确实挺管用的,但是MSDN中提供了最好的解决方案IInternetSecurityManager Interface接口中的ProcessUrlAction方法.可惜网上无法找到这方法的例子.只能说下,自定义IE内核的浏览器的资料真少.

Sheng Jiang 蒋晟
用ProcessUrlAction禁用这个ActiveX的话,访问网页会弹出另一个对话框提示ActiveX已被禁用,

启用

SetKeyValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", "1200", "0", REG_DWORD

禁用

SetKeyValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", "1200", "3", REG_DWORD

参数解释:

1.“Zones\3"中的3是指互联网。

2.”1200“是指ActiveX,其他值参考http://www.fisheep.com/index.php/archives/20/

 

 

屏蔽原理:在第一次载入ActiveX控件的页面时,如果注册表参数为允许执行则以后都允许,反之亦然。设置注册表为禁止后载入页面,最后恢复设置,这样不影响其他程序使用ActiveX组件。

这种状态一直到程序关闭。只要VB未重新开启,这个有效性就一直保存

 

SetKeyValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", "1200", "3", REG_DWORD

 

WebBrowser1.Navigate "about:blank"

  Do While (WebBrowser1.Busy = True)

      DoEvents

  Loop

 

WebBrowser1.Document.Open

WebBrowser1.Document.writeln ""

WebBrowser1.Document.Close

 

SetKeyValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", "1200", "0", REG_DWORD


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#重写WebBrowser,不加载flash图片视频音频
如何对webbrowser和IE编程(一)
【WinCC 】实现网络摄像头的视频监控【精】
在Qt中使用ActiveX控件
WebBrowser控件另存文件
webbrowser控件屏蔽网页错误
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服