Imports System
Imports Microsoft.Win32
Imports System.Net.Mail
Imports System.Net.Mail.SmtpClient
Public Class Form1
Dim smtp() As SmtpClient
Dim MailHost As String = "172.16.1.3"
Dim FromAdd As String = "gao@bjd.ne.jp"
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
'イベントをイベントハンドラに関連付ける
'フォームコンストラクタなどの適当な位置に記述してもよい
AddHandler SystemEvents.SessionEnding, AddressOf SystemEvents_SessionEnding
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
'イベントを開放する
'フォームDisposeメソッド内の基本クラスのDisposeメソッド呼び出しの前に
'記述してもよい
RemoveHandler SystemEvents.SessionEnding, AddressOf SystemEvents_SessionEnding
End Sub
'ログオフ、シャットダウンしようとしているとき
Private Sub SystemEvents_SessionEnding(ByVal sender As Object, ByVal e As SessionEndingEventArgs)
Dim s As String = String.Empty
If e.Reason = SessionEndReasons.Logoff Then
s = "ログオフしようとしています。"
ElseIf e.Reason = SessionEndReasons.SystemShutdown Then
s = "シャットダウンしようとしています。"
End If
If MessageBox.Show(s + vbNewLine + "キャンセルしますか?", _
"質問", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
'キャンセルする
e.Cancel = True
Else
'実行する
SendMail(s, s)
End If
End Sub
'ログオフ、シャットダウンのメール通知
Private Sub SendMail(ByVal TitleMsg As String, ByVal BodyMsg As String)
Dim ToAdd As String = "gao@bjd.ne.jp"
Dim MailSubject As String = TitleMsg
Dim MailBody As String = BodyMsg
Dim sc As New SmtpClient()
Dim msg As New MailMessage()
sc.Host = MailHost
msg.From = New MailAddress(FromAdd)
msg.To.Add(ToAdd)
msg.Subject = MailSubject
msg.Body = MailBody
sc.Send(msg)
End Sub
End Class