在VB.NET中开发Windows服务时,您可以跟踪当前会话中的更改(如Logon,Logoff或ConsoleConnect)。下面的代码为您提供了一个示例。此过程仅在当前会话更改时运行。它在服务启动时不会运行。
Protected Overrides Sub OnSessionChange(changeDescription As System.ServiceProcess.SessionChangeDescription)
MyBase.OnSessionChange(changeDescription)
If changeDescription.Reason = ServiceProcess.SessionChangeReason.ConsoleConnect Then
'Do stuff
End If
End Sub
我的问题是:如何在服务启动时检查当前会话状态?用户是否已登录?他是通过控制台会话连接的吗?您可以通过OnSessionChange
程序跟踪相同的内容。