Winの終了時に常駐アプリを終了するには

解決


sherry  2003-02-06 16:14:16  No: 105999  IP: [192.*.*.*]

いつもお世話になっております。
sherryと申します。

過去ログ等いろいろ調べてみたのですがよくわからないのでお教えください。

VBで作ったアプリをタスクトレイに常駐させています。
常駐したままの状態でWindowsをシャットダウンすると、
アプリは強制終了されます。

これを強制終了しないように、Windowsをシャットダウンするときに
VBのプログラムでアプリを終了させたいのですが、どのようにしたら良いのでしょうか?

WM_QUERYENDSESSIONを受信してやればいいのかしら・・・
というところまではなんとなくはわかるのですが、
記述の方法が良くわかりません。
また、FormのQueryUnloadイベントでも可能なのか。
というところで悩んでおります。

お手数ですが、アドバイス等、よろしくお願いいたします。

編集 削除
takk  2003-02-06 17:43:01  No: 106000  IP: [192.*.*.*]

実際やったことはないんですが、Form_QueryUnloadイベントの
UnloadModeの定数にvbAppTaskManagerというのがあります。

これを使って処理できませんか?

    If UnloadMode = vbAppTaskManager then
        'ここに処理を書く
    End If

編集 削除
sherry  2003-02-07 09:56:13  No: 106001  IP: [192.*.*.*]

takk様、どうもありがとうございます。
試してみます。。。
ちなみに、.netの場合はForm.Closingイベントでよいのですよね?
たびたびもうしわけございませんが、よろしくお願いいたします。

編集 削除
sherry  2003-02-07 10:56:05  No: 106002  IP: [192.*.*.*]

たびたびすみません。。。とんでもなく自分で勘違いしていました。
もともと、タスクトレイに常駐していて、

この終了処理をいれたいのは、MAIN()の中なので、フォームがないのです。
なので、やはりWM_QUERYENDSESSIONを受信してから処理という形にしないといけないのかと思うのですが…

ほかにもいろいろ調べてみます。

編集 削除
sherry  2003-02-07 11:37:49  No: 106003  IP: [192.*.*.*]

とりあえず解決ということに。。。

takk様、本当にありがとうございました。
WM_QUERYENDSESSIONを受信したらという処理でやることにいたします。
とはいっても、記述の仕方がさっぱりわからないので、
この状態で質問しては、回答される方のご迷惑になるかと思います。
もう少し調べて、どうしてもわからなくなったときにお力をお借りするということで。。

どうもありがとうございました。

編集 削除
sherry  2003-02-07 15:47:09  No: 106004  IP: [192.*.*.*]

takk様、大変失礼いたしました。

タスクトレイに常駐していてもできました。
WindowsをシャットダウンするときにForm_QueryUnloadイベントが
おきているのですね。
表面上にはFormがないのでイベントが起きないのかと思っておりました。

あぁ。本当にありがとうございました。

編集 削除