c++ - 试图解释 Windows 操作系统上的用户 session 状态

标签 c++ windows winapi terminal-services usersession

如果我从 Windows 7 上运行的本地服务调用以下 API:

WTS_SESSION_INFO* pWSI;
DWORD nCntWSI;
WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, NULL, 1, &pWSI, &nCntWSI);

然后遍历所有返回的WTS_SESSION_INFO pWSI 中的结构并检查 WTS_CONNECTSTATE_CLASS 状态成员,有人可以解释一下 WTSActive 之间有什么区别吗?和 WTSConnected

最佳答案

已连接表示用户已连接并已(或即将)显示登录屏幕,但尚未完成并通过验证。例如,他可能正在输入密码。

如果用户锁定了工作站,它已被屏幕保护程序锁定,或者他已切换到另一个用户帐户,则不会结束他的 session 。用户保持登录状态,他的 session 将保持标记为事件状态。因此,处于连接状态但未处于事件状态意味着该用户帐户下没有运行任何进程。 (需要注意的是,服务或其他进程可能会根据该用户的凭据在单独的 session 中运行,但这是另一回事。)

关于c++ - 试图解释 Windows 操作系统上的用户 session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063873/

相关文章:

c++ - "Function"不是 C++ 类型

c++ - 继承的综合比较运算符产生警告/错误 : ISO C++20 considers use of overloaded operator '!='

c++ - 为什么得到的MachineGuid看起来不像是GUID而是韩文?

c - 如何处理 Windows 的 ReadDirectoryChangesW() 及其混合的长/短文件名输出?

winapi - 是否可以使用 Windows Api (win7) 来批量重命名文件?

windows - 如何在 Windows 上发送邮件(MAPI 除外)

c++ - 使用#ifdef 是正确的策略吗

c++ - pArray = pArray + 1;有人可以向我解释这如何在 C++ 中增加数组吗?

windows - 如何使用批处理获取前景窗口?

cygwin 上的 Python 安装