2011-12-22 60 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'通知。 –