我有一个IWebBrowser2,我曾经用.Navigate()访问某些网页
当页面出现js错误时,我得到一个“语法错误”警告框,因此我使用了.put_Silent(TRUE)。现在,我收到了“VS实时调试器:未处理的异常”的警告
如何从代码中禁用所有脚本错误警告(包括JIT调试器)(我的意思是不修改实际IE设置)?
最佳答案
您可以通过覆盖控制脚本调试的注册表设置来禁用脚本调试。正确的方法是实现IDocHostUIHandler接口(interface),尤其是IDocHostUIHandler::GetOptionKeyPath或IDocHostUIHandler::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
。