Windows終了時を知るには?

解決


juice  2003-05-29 17:06:58  No: 78089  IP: [192.*.*.*]

Windowsが終了する時に起動しているあるアプリケーションを終了させたいのですが・・。
というのも、Windowsの終了時は、起動中の全アプリケーションはWM_QUERYENDSESSION メッセージを受け取り、 WM_CLOSE メッセージは送られてきませんよね。でも、あるアプリケーションの機能上、WM_CLOSE メッセージを送ることにより終了したいのです。WM_QUITでもいいのですが。

よって、Windows終了時をWM_QUERYENDSESSION メッセージを受け取ったことにより把握し、PostMessageでそのアプリを終了させたいのですが、WM_QUERYENDSESSION メッセージを受け取った時というのが把握できません。
どうしたらよいでしょうか?

わかりにくい説明で申し訳ありません。

編集 削除
魔界の仮面弁士  2003-05-29 17:51:44  No: 78090  IP: [192.*.*.*]

フォーム(非表示でもOK)をロードしておいて、
QueryUnloadイベントの引数で判定するとか。

編集 削除
juice  2003-05-29 18:03:57  No: 78091  IP: [192.*.*.*]

Windows終了によるアプリの終了でもQueryUnloadイベントは通ってくれるのでしょうか?

自己解決してすみませんが、
WndProc(ByVal hwindow As Long, ByVal message As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
を使って、message にWM_QUERYENDSESSIONが来た時処理を行うようにしたら何とかできそうです。

ただ、このメッセージがくる順番ってアプリの起動した順番なんでしょうか?
起動している別のアプリより早く終了しなければ意味がないので。

何度も実験したら、起動した順にきました。

編集 削除