2010-05-29 3 views
2

J'ai un IWebBrowser2 que j'utilise pour visiter certaines pages Web avec .Navigate() Lorsque la page a une erreur js j'ai reçu une boîte d'avertissement pour "Erreur de syntaxe", donc j'ai utilisé .put_Silent(TRUE). Et maintenant, je reçois un avertissement pour « VS Just-In-Time Debugger: exception non gérée » au lieuDésactiver le débogage de script dans le contrôle OLE IWebBrowser2? C++

Comment puis-je désactiver tous les avertissements d'erreur de script (y compris débogueur JIT) de mon code (je veux dire sans modifier les paramètres IE réels)?

+0

J'ai également essayé de définir "Désactiver tous les avertissements" dans les pages de propriétés de libération> C/C++> Général mais je reçois toujours l'avertissement de débogueur. – flyout

Répondre

3

Vous pouvez désactiver le débogage de script en remplaçant les paramètres de registre qui le contrôlent. La façon correcte de le faire consiste à implémenter l'interface IDocHostUIHandler, et en particulier les méthodes IDocHostUIHandler::GetOptionKeyPath ou IDocHostUIHandler::GetOverrideKeyPath. Utilisez GetOptionKeyPath pour ignorer tous les paramètres IE de l'utilisateur (par exemple, la taille de la police) et utilisez les valeurs par défaut IE, ou GetOverrideKeyPath pour utiliser la plupart des paramètres IE de l'utilisateur mais remplacer certains paramètres spécifiques.

Les articles MSDN liés ci-dessus contiennent une bonne documentation sur l'utilisation de cette interface, ainsi que des exemples d'implémentations de l'interface IDocHostUIHandler et de ses méthodes.

Dites que votre méthode GetOptionKeyPath renvoie "SOFTWARE\MyCompany\MyApp\IE" en tant que nouveau chemin de registre. Pour vous assurer que le débogage de script est désactivé, vous devez créer la clé de registre HKEY_CURRENT_USER\Software\MyCompany\MyApp\IE\Main, puis créer une valeur de chaîne nommée Disable Script Debugger ayant la valeur yes.

Questions connexes