在IWebBrowser2 OLE控件中禁用脚本调试? C ++

时间:2010-05-29 19:13:30

标签: c++ webbrowser-control warnings iwebbrowser2

我有一个IWebBrowser2用于访问一些带有.Navigate()的网页 当页面出现js错误时,我收到了“语法错误”的警告框,因此我使用了.put_Silent(TRUE)。现在我收到“VS Just-In-Time Debugger:Unhandled exception”的警告,而不是

如何从我的代码中禁用所有脚本错误警告(包括JIT调试器)(我的意思是不修改真实的IE设置)

1 个答案:

答案 0 :(得分:3)

您可以通过覆盖控制它的注册表设置来禁用脚本调试。正确的方法是实现IDocHostUIHandler界面,特别是IDocHostUIHandler::GetOptionKeyPathIDocHostUIHandler::GetOverrideKeyPath方法。使用GetOptionKeyPath忽略所有用户的IE设置(例如,字体大小)并使用IE默认值,或使用GetOverrideKeyPath来使用大多数用户的IE设置,但覆盖一些特定的设置。

上面链接的MSDN文章包含有关如何使用此接口的良好文档,以及IDocHostUIHandler接口及其方法的示例实现。

假设您的GetOptionKeyPath方法返回"SOFTWARE\MyCompany\MyApp\IE"作为新的注册表路径。要确保禁用脚本调试,您需要创建HKEY_CURRENT_USER\Software\MyCompany\MyApp\IE\Main注册表项,然后创建名为Disable Script Debugger的字符串值,其值为yes