アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6でwindowsがシャットダウン、ログオフ、再起動する前に特別な処理をしたいのですがVB6シャットダウンを感知する方法がわかりません(ToT)
知っている方がいましたら教えて下さいよろしくお願いします。
※windowsは2000proです。

A 回答 (5件)

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)


If (UnloadMode = vbAppWindows) Then
'特別な処理
End If
End Sub

UnloadModeがvbAppWindowsなのは、シャットダウン、ログオフ、再起動の場合のみと思いますが、違いますか?
    • good
    • 0

>結論から言うと、フックするモジュールはDLL化しないといけないようなのです


んなぁこたぁ無いよ

参考urlを読んでの発言だと思うけど、あくまで落ち回避のための事。
機能がしっかりできていて、アプリが落ちなければ、大丈夫。
現に自作アプリのショボランチャーは、DLLにしないで使っている。
使い道としては、シャットダウンを取得するのではなく、デスクトップのダブルクリックを取得している。

確かにデバッグはしづらいけどね。

どっちにしろ、フックしなくちゃいけないから、結局はAPI

この手の質問なら、Cの方で質問したらどう?
んで、サンプルをもらってVBにコンバートしたらいい。
わからなかったらVBの方に、そのコード張ったら、みんなでコンバート合戦開始!
    • good
    • 0

2chさんありがとう。


ということで、グローバルフック・・。
!!!!なんと!!
ほんとかどうかわからないけど、このURLをご覧ください。
結論から言うと、フックするモジュールはDLL化しないといけないようなのです・・。http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
http://www.geocities.co.jp/SiliconValley/1367/Wi …
http://www.kab-studio.com/Programing/Codian/DLL_ …
    • good
    • 0

#1の言うとおり、フックのはず。


だけど参考URLは、ウィンドウフックだから違う。

システム全体をフックしなければならないからSetWindowsHookExを使用するはず。
    • good
    • 0

VB6には、QueryUnloadというイベントがあるかと思います。

プログラムが終了しようとすると、このイベントが呼び出されます。
ここで、シャットダウンやログオフなどによる終了を抑止することもできます。

シャットダウンなどの理由を判断するには、UnloadModeを利用できるかどうかわかりませんが、もし、できなければメッセージのフックする必要があるかもしれません。
http://www.remus.dti.ne.jp/~shenron/access/knowh …

こんな雰囲気だったという記憶しかなく、VBをもっていないので、間違ってたらごめんなさい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!