ホームページ >バックエンド開発 >C++ >C# と Visual Studio を使用して Internet Explorer 拡張機能を開発するにはどうすればよいですか?

C# と Visual Studio を使用して Internet Explorer 拡張機能を開発するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-23 01:56:10499ブラウズ

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

Internet Explorer 拡張機能を作成します

前提条件:

  • Visual Studio および .NET 開発に精通している
  • COM インターフェイスについて学びます (オプションですが便利です)

手順:

  1. クラス ライブラリ プロジェクトを作成します: Visual Studio で、「InternetExplorerExtension」という名前の新しい C# クラス ライブラリ プロジェクトを作成します。

  2. 参照の追加: "Interop.SHDocVw" アセンブリと "Microsoft.mshtml" アセンブリへの参照を追加します。

  3. BHO クラスを定義します: 「WordHighlighterBHO」という名前のクラスを作成し、次のインターフェイスを実装します:

    • IObjectWithSite (ブラウザ オブジェクトの管理に使用されます)
    • IOleCommandTarget (メニュー項目コマンドの処理に使用されます)
  4. ドキュメント完了イベントの処理: 「OnDocumentComplete」メソッドを実装します。このメソッドは DOM を横断し、JavaScript を使用して特定の単語 (例: 「ブラウザ」) の出現を強調表示します。

  5. メニュー項目の追加: アドインの構成フォームを開くためのメニュー項目コマンドを定義します。

  6. 永続データ: 構成オプション (強調表示するテキストなど) をレジストリに保存して永続化します。

  7. BHO の登録: 「RegisterBHO」メソッドを使用して、アドインをシステムに登録します。

  8. コンパイルとインストール: ソリューションをビルドし、GAC にアセンブリを登録するように「ビルド後」イベントを構成してください。

IE11 に関する追加メモ:

  • ビルド後の登録のために、Visual Studio が管理者として実行されていることを確認してください。
  • 「MSHTML」アセンブリがシステムにまだ登録されていない場合は、プロジェクト参照に追加します。

サンプルコード:

<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>

以上がC# と Visual Studio を使用して Internet Explorer 拡張機能を開発するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。