- ベストアンサー
ウインドウが閉じたことを知る方法
ウインドウが閉じたことを知る方法(VB5、WindowsXP) 他人の作った「aaa.exe」というアプリケーションが起動していて、このアプリにはForm1というウインドウとForm2という2つのウインドウがあり、どちらも開いています。このとき、そのうちのForm1というウインドウの閉じるボタンを押したとき、完全に閉じるまでに5秒以上かかります。このForm1というウインドウが完全に閉じたことを外部から知る方法はないでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
★ウインドウ・ハンドルを監視する方法はどう? ・『aaa.exe』というアプリケーションのウインドウ・ハンドルを何らかの方法で取得します。 ・そして、0.1 秒のタイマー間隔で取得したウインドウ・ハンドルが有効かどうかをチェック すれば一番簡単な方法です。 ・ウインドウ・ハンドルのチェックは『IsWindow』API関数で行えます。 ・上記以外にも WM_QUIT メッセージを監視する方法もありますが実装が難しいです。 ・WM_QUIT メッセージを監視するには DLL を作成して行います。 ・この技術は、マウスやキーボードの監視も同じで DLL を作成して行います。 ・まぁ、プロセス間のやり取りはなれないと難しいですね。 ・私も時間がかかりました。 ・という訳でタイマー間隔で監視する方法が最も簡単な方法かな。 ・以上。おわり。→参考になりましたか?
その他の回答 (1)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★追記。 ・http://oshiete1.goo.ne.jp/qa2692250.html→『プロセスIDの再利用』 ・この質問者の回答者 stiffels さんのリンクを参考にして下さい。 ・以上。紹介のみでした。
お礼
ご回答、ありがとうございます。 > 調べてみたところWindowsのプロセスIDも、 > そう簡単には再利用されないようです。 ウインドウハンドルもきっとそうなんでしょうね。 > ・そして、0.1 秒のタイマー間隔で取得したウインドウ・ハンドルが > 有効かどうかをチェックすれば一番簡単な方法です。 あまり神経質にならずにご紹介いただいた方法で実現したいと思います。 どうもありがとうございました。
お礼
ご回答ありがとうございます。 その方法も検討したのですが、もし、閉じてすぐに、そのウインドウのハンドルと同じ数値の別のウインドウが作られてしまった場合、まずいことになってしまうと思ったので、他の方法を探していました。やはり簡単にはいかないようですね。 ありがとうございました。