IE (Internet Exploere)でHTMLを操作するために必要なノウハウをまとめておきました。
(1) VC++を準備
私は、Visual Studio Expressを準備しました。
(2) Windowsアプリ作成の基礎
(3) MSHTMLの原理
このリンク先の図だけイメージできていれば良いと思います。
HTML描画機能です。
(4) MSHTMLプログラミング
全般的に、このサイトが参考になります。凄い勉強になる!
http://eternalwindows.jp/browser/mshtml/mshtml00.html
その中でも、特に次の3つが参考になりました!
(4-1) IE内のHTMLでエレメントを追加 (但し、idがある場合)
http://eternalwindows.jp/browser/mshtml/mshtml05.html
⇒ このスクリプトは、このままでは動きませんでした。htmlのdivに "id=sample"を追加すると動くようになります。
(4-2) IE内のHTMLをidが設定されていなくても操作する
http://eternalwindows.jp/browser/mshtml/mshtml02.html
(4-3) IE内のHTMLのボタンを押すといったイベントをレシーブする
http://eternalwindows.jp/browser/mshtml/mshtml07.html
⇒ すぐにループを抜けてしまうために、このスクリプトは、このままでは動かないものと思われる。試していませんけどね。
⇒ 試しました。私の間違いでした。「終了します」メッセージボックスを押さない状態であれば、ボタンを押すと反応します。
(5) Windowsプログラミングの注意
変数命名はハンガリアン記法が良いそうです。
(6) 文字列操作
とても難しいです。HSMTMLで使う文字列はBSTR型になります。
・・・昔から、C言語の文字列操作に苦手意識あります。
(6-1) 変数定義 → メモリ確保 → メモリ解放
必ず、以下の3行がセットです。
allocでメモリ確保するのでメモリ解放必須です。
忘れやすいので注意!
BSTR bstrText; //変数定義
bstrText = SysAllocString(L"testString");//メモリ確保
SysFreeString(bstrText); //メモリ解放
(6-2) 命名規則
ハンガリアン記法による変数名はBSTRならbstrから始まり、
charの文字列ならszから始まるようにしたいですね。
(6-3) 特殊な文字
bstr内の文字列を改行したい場合は"\n"が使えます。
(6-4) BSTR → Char変換
この文字列を扱いたいときは、まずはBSTR → Charに変換します。
(6-5) 含まれている文字列を探す
char型に変換したらstrstrを使いましょう。
(7) 応用編
例えば、次のように使います。
(7-1) フォーマット自動記入
(7-2) ボタンクリックの検知