• ベストアンサー

VB6でシャットダウン、ログオフを感知

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

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.5

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If (UnloadMode = vbAppWindows) Then '特別な処理 End If End Sub UnloadModeがvbAppWindowsなのは、シャットダウン、ログオフ、再起動の場合のみと思いますが、違いますか?

その他の回答 (4)

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.4

>結論から言うと、フックするモジュールはDLL化しないといけないようなのです んなぁこたぁ無いよ 参考urlを読んでの発言だと思うけど、あくまで落ち回避のための事。 機能がしっかりできていて、アプリが落ちなければ、大丈夫。 現に自作アプリのショボランチャーは、DLLにしないで使っている。 使い道としては、シャットダウンを取得するのではなく、デスクトップのダブルクリックを取得している。 確かにデバッグはしづらいけどね。 どっちにしろ、フックしなくちゃいけないから、結局はAPI この手の質問なら、Cの方で質問したらどう? んで、サンプルをもらってVBにコンバートしたらいい。 わからなかったらVBの方に、そのコード張ったら、みんなでコンバート合戦開始!

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.3

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

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.2

#1の言うとおり、フックのはず。 だけど参考URLは、ウィンドウフックだから違う。 システム全体をフックしなければならないからSetWindowsHookExを使用するはず。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

VB6には、QueryUnloadというイベントがあるかと思います。プログラムが終了しようとすると、このイベントが呼び出されます。 ここで、シャットダウンやログオフなどによる終了を抑止することもできます。 シャットダウンなどの理由を判断するには、UnloadModeを利用できるかどうかわかりませんが、もし、できなければメッセージのフックする必要があるかもしれません。 http://www.remus.dti.ne.jp/~shenron/access/knowhow/SubClass.html こんな雰囲気だったという記憶しかなく、VBをもっていないので、間違ってたらごめんなさい。