タイトル : Re^5: シャットダウン時にAPも終了させたい 投稿日 : 2007/10/15(Mon) 12:43 投稿者 : mojimoji
ありがとうございました。 > デザイン画面で普通に作るTimer1で、5分ならば5*60=300回とか > で、実現するのがBetterと信じています。 Timer忘れていました。 > 60000だとダメなのは、ウィンドウズのメッセージをSleepの間は受け取れないから、です なるほど。だから終了できなかったのですね。 以下のことは超々初心者なので、あまり理解できません。 教えていただいたのにすみません。 > (目的の)処理が、1秒(6秒?)以内で必ず終わるものなら以下の問題はないですが、 > 長い処理の途中でログオフされてしまうと、マズイのでは? > で、私が、初心者なりにサーバ的ソフトでやっているのは > 1.共通の(ロック)ファイルを設定しておいて、サーバのDownの前には、別のクライアントから、このファイルをOnしてやり、そうしたら、サーバ的ソフトは(ファイルを見て)以降は長い処理に取り掛からない、またResファイルを返す・・とか。 > 2.TCPのソケット通信で、別のクライアントから、長い処理に取り掛からない・という信号(文字)を送るのも比較的簡単です ようやく解決できました。コードは↓の通りです。 お忙しいところ、ありがとうございます。 Imports Microsoft.Win32 Public Class Form1 Dim X As Integer Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load AddHandler SystemEvents.SessionEnding, _ AddressOf SystemEvents_SessionEnding Timer1.Interval = 300000 Timer1.Enabled = True 'Timer1を有効にする。 End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, _ '処理 End Sub Private Sub SystemEvents_SessionEnding(ByVal sender As Object, _ ByVal e As SessionEndingEventArgs) If e.Reason = SessionEndReasons.Logoff Then Me.Close() ElseIf e.Reason = SessionEndReasons.SystemShutdown Then Me.Close() End If End Sub End Class |