tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。