現在、常住するアプリケーションを作っているのですが、
シャットダウン時にエラーが出てしまいます。
シャットダウンやログオフされたときに、
シャットダウンやログオフをさせる前にアプリケーションを終了するまで待たせてから、
シャットダウンやログオフさせるという方法がありますでしょうか?
あるなら、教えてください。
ネットなどで検索をかけたのですが、そういう動作をするソースが見つかりません。
あるいは、DoEventsを使用しようかと思ったのですが、
DoEventsの効果で
Windowsのシャットダウンが先に進んでしまいそうな気がしたので試していないのですが・・・・・
環境:VB.NET + WindowsXP
現在のソースは下に記述しています。
Imports Microsoft.Win32
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
'イベントをイベント ハンドラに関連付ける
AddHandler SystemEvents.SessionEnding, _
AddressOf SystemEvents_SessionEnding
End Sub
Private Sub Form1_Closed(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Closed
'イベントを開放する
RemoveHandler SystemEvents.SessionEnding, _
AddressOf SystemEvents_SessionEnding
End Sub
'ログオフ、シャットダウンしようとしているとき
Private Sub SystemEvents_SessionEnding( _
ByVal sender As Object, _
ByVal e As SessionEndingEventArgs)
Dim sw As System.IO.StreamWriter
sw = New System.IO.StreamWriter("C:\Test.txt", False, _
System.Text.Encoding.Default)
sw.Write("終了しました。")
sw.Close()
Me.Close()
End Sub
自己解決しました。
エラーの原因がわかりました。
デバッグをした後、ウィンドウが出てプログラムが動いて
Visual Stadio .NET が起動したまま
シャットダウンやログオフをしていました。
完全にうっかりしていた私のミスでした。