我有一个 IWebBrowser2,我用它来通过 .Navigate() 访问一些网页 当页面出现 js 错误时,我收到“语法错误”的警告框,因此我使用 .put_Silent(TRUE) 。现在我收到了“VS Just-In-Time Debugger:未处理的异常”的警告
如何从我的代码中禁用所有脚本错误警告(包括 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
。
关于c++ - 在 IWebBrowser2 OLE 控件中禁用脚本调试? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936279/