假设当前有多个用户登录 Windows。比如说,user1
登录,然后 switch user
和 user2
登录,(没有让 user1
注销)。假设有一个应用程序在用户登录时运行。有两个用户 user1
和 user2
登录,其中 user2
为活跃用户,并且有两个应用。
我的问题是:应用程序如何知道其对应的用户是否活跃?即,user2
域中的应用程序确定其用户处于事件状态,而 user1
域中的应用程序确定其用户当前处于非事件状态。谢谢!
最佳答案
您可以调用WTSGetActiveConsoleSessionId
获取当前在物理控制台上事件的终端服务(又名“快速用户切换”又名“远程桌面”) session ID。
您可以调用WTSQuerySessionInformation
使用 WTS_CURRENT_SESSION
作为 session 标识符,使用 WTSSessionId
作为 WTSInfoClass
以获取当前进程的终端服务 session ID。
如果active session ID和当前进程session ID相同,则当前进程对应的用户在物理控制台上有active session。
如果您想知道当前进程正在运行的 session 是否处于事件状态(但不一定在物理控制台上),您可以改为使用 WTSConnectState
选项到 WTSQuerySessionInformation
。
关于c++ - Windows多用户登录时如何获取活跃用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315013/