我设法使用WTSEnumerateSessions来获取所有会话,但是我无法弄清楚如何锁定/解锁它们的状态,以及万一它们被解锁,可以得到自上次输入以来的时间。有任何提示/帮助吗?
答案 0 :(得分:2)
要获取会话的锁定状态:
在Windows 7及更高版本上,您可以使用WTSInfoClass
参数设置为WTSQuerySessionInformation()
的WTSSessionInfoEx
。
在较旧的系统上,您必须使用WTSRegisterSessionNotification()
实时监视锁定/解锁事件,以接收WM_WTSSESSION_CHANGE
通知,并检查其wParam
中是否有{{1} }和WTS_SESSION_LOCK
状态代码。
要获取会话的最后输入时间:
在Vista SP1和更高版本上,可以使用WTSQuerySessionInformation()
,并将其WTS_SESSION_UNLOCK
参数设置为WTSSessionInfo
。
在较旧的系统上,您必须使用CreateProcessAsUser()
在目标会话中运行帮助程序,然后才能调用GetLastInputInfo()
并将该信息传达回您的主应用程序。 / p>