たまーにクライアントやターミナル環境を監査するようなAPが必要になった時に、ログイン・ログアウトと同じくらいロックしたことを検知したいときがあるんだよねぇ。
マネージでやる場合、こんな感じ。
Imports Microsoft.Win32
(中略)
AddHandler SystemEvents.SessionSwitch, AddressOf SessionSwitch
(中略)Private Sub SessionSwitch(ByVal sender As Object, ByVal e As SessionSwitchEventArgs)
Try
Select Case e.Reason
Case SessionSwitchReason.SessionLock
Debug.WriteLine("SessionLock")
Case SessionSwitchReason.SessionUnlock
Debug.WriteLine("SessionUnLock")
End Select
Catch ex As ExceptionEnd Try
End Sub
大体こんな感じで、静的クラスの Microsoft.Win32.SystemEvents クラスの SessionSwitch イベントを利用してあげればOK。
もっと楽にやろうとするなら・・・System.ServiceProcess.ServiceBase を継承して、ってトコだろうなぁ。
0 件のコメント:
コメントを投稿