起動済のIEのイベントを検知するには?

解決


GOMA  2004-10-19 10:08:32  No: 86100  IP: [192.*.*.*]

環境:Windows2000(SP4)
言語:VB6.0(SP6)

いつもお世話になっています。

別アプリケーションのイベント検知方法に関する質問です。

自分(VB)が起動したもの以外のIEが出すイベント(ブラウザ及びドキュメント部に関して)
を検知したいのですが、

自分自身で起動したIEブラウザは
Set objWeb = CreateObject("InternetExplorer.Application")
の様にして取得出来ますが、
自分で起動したものではないIEブラウザをオブジェクト変数に取り込む事は
出来るのでしょうか。

意外と出来そうで出来なくて苦戦しています。

又、確認ですが、IEブラウザ及びドキュメントの出すイベントを検知しようとしたら
やはりWithEventsでオブジェクト変数を宣言し、そこにSETするしかないという認識で良いでしょうか。
(=対象のIEブラウザに対しての前準備無しではイベント検知は出来ませんよね?)

以上、宜しくお願い致します。

編集 削除
魔界の仮面弁士  2004-10-19 12:37:54  No: 86101  IP: [192.*.*.*]

> 自分で起動したものではないIEブラウザをオブジェクト変数に取り込む事は
> 出来るのでしょうか。


ShellWindowsコレクションを使うことで、起動済みのIE/Explorerを列挙できます。

Set objShellWindows = CreateObject("Shell.Application").Windows()
For Each objIE In objShellWindows
   MsgBox TypeName(objIE)
Next
Set objShellWindows = Nothing

編集 削除
GOMA  2004-10-19 18:16:17  No: 86102  IP: [192.*.*.*]

ありがとうございます。
どうやらこれで行けそうです。
「CreateObject("Shell.Application")」で検索する事で
関連事項も調査出来そうです。
For Eachの線、こちらでも一時頭によぎったのですが、For Each objIE In 〜の
〜部分がうまいこと思いつきませんでした。
(ウィンドウハンドルを取得して云々等考えたりしちゃってました)

今後とも宜しくお願い致します。

編集 削除