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

解決


sherry  2003-02-07 01:14:16  No: 105999

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

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

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

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

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

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


takk  2003-02-07 02:43:01  No: 106000

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

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

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


sherry  2003-02-07 18:56:13  No: 106001

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


sherry  2003-02-07 19:56:05  No: 106002

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

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

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


sherry  2003-02-07 20:37:49  No: 106003

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

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

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


sherry  2003-02-08 00:47:09  No: 106004

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

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

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


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

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






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