2011-12-22 54 views

回答

11

没有书面的方式来检查会话是否被锁定。然而,有一种方法可以检测到会话锁定的获得。使用WTSRegisterSessionNotification(),当工作站被锁定时,你将得到一个带有WTS_SESSION_LOCK值的WM_WTSSESSION_CHANGE消息。

如果你打算从一个服务做到这一点,那么一定要谷歌“会话0隔离”找出为什么不起作用。

+0

谢谢!现在我正在阅读此链接http://support.microsoft.com/kb/310153。我将在稍后尝试代码。 –

+4

使用'WTSRegisterSessionNotification()'是唯一的选择。 MSDN说尽可能多(见http://msdn.microsoft.com/en-us/library/windows/desktop/aa376875.aspx):“没有函数可以调用来确定工作站是否被锁定。要接收通知当用户登录时,使用'WTSRegisterSessionNotification()'函数来接收'WM_WTSSESSION_CHANGE'消息。“使用'HandlerEx' SCM回调而不是'Handler' SCM回调的服务可以从'WTSRegisterSessionNotification()'接收'SERVICE_CONTROL_SESSIONCHANGE'通知。 –