Maison > développement back-end > C++ > Comment développer une extension Internet Explorer à l'aide de C# et Visual Studio ?

Comment développer une extension Internet Explorer à l'aide de C# et Visual Studio ?

Patricia Arquette
Libérer: 2025-01-23 01:56:10
original
497 Les gens l'ont consulté

How to Develop an Internet Explorer Extension Using C# and Visual Studio?

Créer une extension Internet Explorer

Prérequis :

  • Familier avec Visual Studio et le développement .NET
  • En savoir plus sur les interfaces COM (facultatif, mais utile)

Étapes :

  1. Créez un projet de bibliothèque de classes : Dans Visual Studio, créez un nouveau projet de bibliothèque de classes C# nommé "InternetExplorerExtension".

  2. Ajouter des références : Ajoutez des références aux assemblys "Interop.SHDocVw" et "Microsoft.mshtml".

  3. Définissez la classe BHO : Créez une classe nommée "WordHighlighterBHO" et implémentez l'interface suivante :

    • IObjectWithSite (utilisé pour gérer les objets du navigateur)
    • IOleCommandTarget (utilisé pour gérer les commandes d'éléments de menu)
  4. Gestion de l'événement de complétion du document : Implémentez la méthode "OnDocumentComplete", qui parcourt le DOM et utilise JavaScript pour mettre en évidence les occurrences d'un mot spécifique (par exemple, "navigateur").

  5. Ajouter un élément de menu : Définissez une commande d'élément de menu pour ouvrir le formulaire de configuration du complément.

  6. Données persistantes : Enregistrez les options de configuration (telles que le texte à surligner) dans le registre pour la persistance.

  7. Enregistrer BHO : Utilisez la méthode "RegisterBHO" pour enregistrer le complément sur le système.

  8. Compilez et installez : Construisez la solution et assurez-vous de configurer l'événement "post-build" pour enregistrer l'assembly dans le GAC.

Remarques supplémentaires pour IE11 :

  • Assurez-vous que Visual Studio s'exécute en tant qu'administrateur pour l'enregistrement post-build.
  • Si l'assembly "MSHTML" n'est pas déjà enregistré dans le système, ajoutez-le aux références du projet.

Exemple de code :

<code class="language-csharp">namespace InternetExplorerExtension
{
    public class WordHighlighterBHO : IObjectWithSite, IOleCommandTarget
    {
        // ...
        public void OnDocumentComplete(object pDisp, ref object URL)
        {
            // ...
        }
        // ...
        public int Exec(IntPtr pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            // ...
            // 从命令栏访问文档。
            var document = browser.Document as IHTMLDocument2;
            var window = document.parentWindow;
            var result = window.execScript(@"alert('您现在可以配置要高亮的文本...');");

            var form = new HighlighterOptionsForm();
            form.InputText = TextToHighlight;
            if (form.ShowDialog() != DialogResult.Cancel)
            {
                TextToHighlight = form.InputText;
                SaveOptions();
            }
            // ...
            return 0;
        }
        // ...
        public static void RegisterBHO(Type type)
        {
            string guid = type.GUID.ToString("B");

            // ...
        }
        // ...
    }
}</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal