VB.netから、ファイル名(拡張子に関連付けられた)外部プログラムを起動した場合、2つ目以降のIEはプロセスではなくスレッドとして起動されるようです。
プロセスの終了イベントは、Exitedイベントで検出できましたが、スレッドの終了あるいはウインドのクローズを容易に検出する方法はありませんでしょうか。
よろしくお願いいたします。
ShDocVw.ShellWindowsのWindowRevokedイベントなどを利用するとか。
K.J.K.さん、早速のレスポンスありがとうございました。
提示頂いたイベントを探しましたが、初心者の私にはが良く分かりませんでした
ので、視点を変えて以下のようにして何とか解決の見込みが立ちました。
(1)拡張子(.html)に関連付けられた実行ファイルをレジストリから見つける。
(2)実行ファイルが、iexplore.exe だった時はファイル名から直接起動しないで、
"iexplore.exeのパス" + "パラメータ(ファイル名)" として起動する。
(3)それ以外の時は、ファイル名から直接起動する。
これで、いずれの場合もプロセスとして起動され、終了時にExitedイベントが
発生します。
参考:http://dobon.net/vb/dotnet/system/findassociatedexe.html
ツイート | ![]() |