WM_CLOSEで閉じれないウィンドウを閉じるには?

解決


あヵぃ  2004-04-08 11:33:17  No: 53445

たとえばメモ帳の様に WM_CLOSE メッセージを送ったときに
「変更を保存しますか?」のようなダイアログが出るアプリを
強制終了するにはどうしたらよいでしょうか?

自分なりに考えて見たものの、ダイアログが出たら
キーイベントを合成して [いいえ(&N)] ボタンを
押したことにするような、無茶苦茶なのしか思いつきません(泣
これだと不都合があるので、、
タスクマネージャがやっているようなスマートな方法があるはずですが、
分からなくて、行き詰っています。

ヒントでもあれば助かります。
どなたかよろしくお願いいたします。


SELNA  2004-04-08 12:13:40  No: 53446

メモ帳等のアプリのメッセージを横取り(フック)すればいいのではないでしょうか?


YuO  2004-04-08 22:05:15  No: 53447

タスクマネージャもWM_CLOSEを送っているだけのようですが。
#Windows NT 4.0 Workstationで確認。
多分,SendMessageTimeoutあたりを利用しているのでしょう。

強制終了だけであればTerminateProcessでできますが,
とてもスマートな方法とは言えませんし……。


あヵぃ  2004-04-09 03:38:19  No: 53448

ありがとうございます。


YuO  2004-04-09 04:41:56  No: 53449

で,どうやって解決したのですか?


RAPT  2004-04-10 20:50:26  No: 53450

TerminateProcessは「危険」な手段です。
環境によってはかなり不安定になるので、やむを得ない場合以外は
使わない方が好ましいと思います。


シャノン  2004-04-12 18:34:02  No: 53451

確認したわけではありませんが…
WM_ENDSESSION を投げつける、とか。

メモ帳で編集中に windows を終了したときに、保存するかどうかのダイアログを WM_CLOSE あるいは WM_QUERYENDSESSION で出しているなら、問答無用で終了させられないかな、と思ったり。
まぁ、広い世の中、ひとつくらいは WM_ENDSESSION で保存チェックをしているひねくれ者があるかもしれませんが^^;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加