我有一个IWebBrowser2,我曾经用.Navigate()访问某些网页
当页面出现js错误时,我得到一个“语法错误”警告框,因此我使用了.put_Silent(TRUE)。现在,我收到了“VS实时调试器:未处理的异常”的警告

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

最佳答案

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

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

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

07-24 09:44
查看更多