问题如上,强调一点,是脚本调试窗口,就是网页有错误时跳出来让用户选一个程序对网页进行调试的窗口,而不是脚本错误窗口,因为我查了很多文章,大家的回答不是说用SetSlient就是说选中IE设置中的“禁用脚本调试”,我希望在程序中实现屏蔽调用脚本调试的消息。望高手指教

解决方案 »

  1.   

    删除MDM服务即可。。那个是JIT调试,与IE无关,你任何一个程序崩溃都会出来,MDM随VS2003以及以上版本安装。。
      

  2.   

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug是 vs的jit debug功能,我记得可以具体关闭哪项调试功能的(脚本,本地代码,SQL,托管等),但忘了在那。
      

  3.   

    应该是我上面说的,因为其实由vsjitdebugger调用MDM提供的服务,不过我没测试~~安装vs2003以及以上版本就带,可以考虑卸载一次对比下注册表。
      

  4.   

    感谢KeSummer的回答,但是我的程序是得在客户的机子上运行的,我不能改动客户机器上的配置,不然我直接修改注册表将“禁用脚本调试”置成“yes”就是了。再次呼唤高手
      

  5.   

    在将html读入前WebBrowser删除html的错误的代码是否可行?
      

  6.   

    这个不说行不行,但是我是C++程序,对HTML的了解还不要那个程度
      

  7.   

    要实现自己的IOleCommandTarget接口,然后实现该接口的Exec函数,STDMETHODIMP CMyIEControlSite::XOleCommandTarget::Exec(const GUID *pguidCmdGroup,DWORD nCmdID,DWORD nCmdexecopt,VARIANT *pvaIn,VARIANT *pvaOut)
    {HRESULT hr = S_OK; if (pguidCmdGroup && IsEqualGUID(*pguidCmdGroup, CGID_DocHostCommandHandler))
    { switch (nCmdID) 
    { case OLECMDID_SHOWSCRIPTERROR:
    {
    (*pvaOut).vt = VT_BOOL;
    (*pvaOut).boolVal = VARIANT_TRUE; 
    break;
    }
    default:
    hr = OLECMDERR_E_NOTSUPPORTED;
    break;
    }
    }
    else
    {
    hr = OLECMDERR_E_UNKNOWNGROUP;
    }
    return (hr);
      

  8.   

    获取IHTMLWindow2接口,然后put_onerror自己接管错误处理,仿照norton杀毒ie插件的做法
      

  9.   

    不知道楼主具体是怎么做的,其实这样是可以的,我之前是用CHtmlView做的浏览器,重新实现了一下CHtmlControlSite和他的IOleCommandTarget接口就可以了。
      

  10.   

    回“oldmanzhao”,能否将你实现的相关代码发给我参考下,谢谢了!
      

  11.   

    回casale,已经发给你了,你看看吧。