掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
hWndを元にInternetExplorerオブジェクトを生成できますか? (ID:102197)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ある状況下で、ShellからInternetExplorerオブジェクトを取得できないのに、 IEのウインドウは存在するという状態があり、 この"IFrame"や"TabWindowClass"のhWndからInternetExplorerオブジェクトを取得したいと考えています。 hWndを元にしてInternetExplorerオブジェクトを生成することは可能でしょうか? またhWndからではなくとも、InternetExplorerオブジェクトが得られるなら何でもかまいません。 いくつか手段があるようでしたらそれらもお教え頂けたら幸いです。 (後述しますが、実際Shellオブジェクトからでは取得不可能でした) 想定状況はかなり特殊で「explorer.exeが一度強制終了された後」というものです。 この状況下においてIEを取得したいのですが・・・どうしたものかと考えあぐねています。 状況の再現は、タスクマネージャから強制的にexplorer.exeを落とし、 同じくタスクマネージャから再びexplorerを一度呼び出すことで再現できるようです。 (XPではexplorerが強制終了された場合、多くの場合新たなexplorer.exeが起動し自動的に復旧します) この条件下では、まずShellからでは正しく情報が取得できませんでした。 この条件下に入ってから新たに起動されたIEであればそのすべてを取得できるのですが、 以前のexplore.exeの際にすでに作成されていたIEウインドウに関してはひとつも列挙されませんでした。 このため現在は他の方向、EnumWindowsやEnumChildWindowsからアプローチできないか試行錯誤している最中です。 IEFrameとTabWindowsClassのウインドウハンドルが取得出来る所までしか至っていません。 (その配下にあると思われるShell DocObject ViewとInternet Explorer_ServerのhWndはまだ取得できていませんが、 得られないのは私の知識不足が原因でおそらく適切なAPIを用いれば取得可能であろうと考えています) 仮にInternetExprorerオブジェクトが取れなくとも、最悪でも現在開いているURLが取得できればいいのですが・・・。 テストしている環境はXPSP3です。 いろいろとおかしな条件を付けて申し訳ありません。 Windowsの仕組みに理解が足りないためご迷惑をおかけするかと思いますが、どうかよろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.