• ベストアンサー

ウインドウが閉じたことを知る方法

ウインドウが閉じたことを知る方法(VB5、WindowsXP) 他人の作った「aaa.exe」というアプリケーションが起動していて、このアプリにはForm1というウインドウとForm2という2つのウインドウがあり、どちらも開いています。このとき、そのうちのForm1というウインドウの閉じるボタンを押したとき、完全に閉じるまでに5秒以上かかります。このForm1というウインドウが完全に閉じたことを外部から知る方法はないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★ウインドウ・ハンドルを監視する方法はどう? ・『aaa.exe』というアプリケーションのウインドウ・ハンドルを何らかの方法で取得します。 ・そして、0.1 秒のタイマー間隔で取得したウインドウ・ハンドルが有効かどうかをチェック  すれば一番簡単な方法です。 ・ウインドウ・ハンドルのチェックは『IsWindow』API関数で行えます。 ・上記以外にも WM_QUIT メッセージを監視する方法もありますが実装が難しいです。 ・WM_QUIT メッセージを監視するには DLL を作成して行います。 ・この技術は、マウスやキーボードの監視も同じで DLL を作成して行います。 ・まぁ、プロセス間のやり取りはなれないと難しいですね。 ・私も時間がかかりました。 ・という訳でタイマー間隔で監視する方法が最も簡単な方法かな。 ・以上。おわり。→参考になりましたか?

参考URL:
http://plaza.harmonix.ne.jp/~ahoshino/vb/IsWindow.htm
noname#208339
質問者

お礼

ご回答ありがとうございます。 その方法も検討したのですが、もし、閉じてすぐに、そのウインドウのハンドルと同じ数値の別のウインドウが作られてしまった場合、まずいことになってしまうと思ったので、他の方法を探していました。やはり簡単にはいかないようですね。 ありがとうございました。

その他の回答 (1)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★追記。 ・http://oshiete1.goo.ne.jp/qa2692250.html→『プロセスIDの再利用』 ・この質問者の回答者 stiffels さんのリンクを参考にして下さい。 ・以上。紹介のみでした。

noname#208339
質問者

お礼

ご回答、ありがとうございます。 > 調べてみたところWindowsのプロセスIDも、 > そう簡単には再利用されないようです。 ウインドウハンドルもきっとそうなんでしょうね。 > ・そして、0.1 秒のタイマー間隔で取得したウインドウ・ハンドルが > 有効かどうかをチェックすれば一番簡単な方法です。 あまり神経質にならずにご紹介いただいた方法で実現したいと思います。 どうもありがとうございました。

関連するQ&A