2015年6月6日土曜日

C#でIEを自動制御しよう (2) プロジェクトの設定

【動作確認環境】

  • Windows 8.1
  • InternetExplorer11
  • Visual Studio 2013 Update4
    • C#プロジェクト (ターゲット .NET Framework4.5)

【C#プロジェクトの設定に関して】

参照設定で、タイプライブラリ
  • Microsoft Internet Controls (SHDocVw.DLL)
  • Microsoft HTML Object Library (MSHTML.DLL)
を追加しています。
各ライブラリのプロパティ「相互運用機能型の埋め込み」はTrueです(デフォルト設定)。

【基本的な話】

【はじめに】で書いたことの繰り返しになりますが、参照設定する2つのライブラリについて補足説明すると、Microsoft Internet Controls (SHDocVw.DLL)は、InternetExplorerのウェブブラウザとしての主要な動作を担うライブラリで、Microsoft HTML Object Library (MSHTML.DLL)は、HTML(DOM)・CSSの解析、操作を行うライブラリになります。前者は、IEを操作するために必須、後者は、(dynamicを多用することで)参照なしでもコードを書けなくはないのですが、VSのコード補完が効かずシニタクナルノデ忘れず追加しておきましょう。そうしましょう。

 以降、SHDocVw.DLLに含まれる SHDocVw.InternetExplorerというクラスのインスタンス(オブジェクト)を生成することで、IEの制御を行っていきます。また、IE上に表示されたページの各要素(DOMオブジェクト)の操作は、Microsoft HTML Object Library (MSHTML.DLL)に含まれる各クラスを通じて操作していくことになります。

 ぶっちゃけ、InternetExplorerオブジェクトのメソッド一覧は、MSDN (InternetExplorer object (Windows) )に載っておりますので、そちらを見ていただくと本記事を読む必要性は皆無です。本家リファレンスだけに完璧です。

 気を取り直して。次からは、実際のサンプルコードを踏まえて、IEの制御方法を説明していきます。