2010-05-29 1 views
2

У меня есть IWebBrowser2 Я использую для посещения некоторые веб-страницы с .Navigate() Когда на странице есть ошибка js, я получил предупреждение для «Синтаксическая ошибка», поэтому я использовал .put_Silent(TRUE). А теперь я получаю предупреждение для «VS Just-In-Time Debugger: Необработанное исключение» вместоОтключить отладку скриптов в ILEBBERSER2 OLE control? C++

Как отключить все предупреждения об ошибках сценария (включая JIT отладчик) из моего кода (я имею в виду, не изменяя реальные настройки IE)?

+0

Я также попытался установить «Отключить все предупреждения» в разделе «Свойства выпуска»> «C/C++»> «Общие», но я все еще получаю предупреждение отладчика. – flyout

ответ

3

Вы можете отключить отладку сценариев, переопределив параметры реестра, которые его контролируют. Правильный способ сделать это - реализовать интерфейс IDocHostUIHandler, а именно методы IDocHostUIHandler::GetOptionKeyPath или IDocHostUIHandler::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.