我一直在尝试使用 WTSEnumerateSessions 来确定当前登录的用户数量,如 post 中所建议的那样。 .
我的主要问题是不理解如何使用返回的 WTS_SESSION_INFO
结构的内容来确定有多少用户登录。在Windows XP Pro SP3中,当单个用户登录时,我会得到两批 session 信息;
Win 站名称:控制台,ID:0
Win站名称:RDP-Tcp,ID:65536
在 Windows 7 Ultimate(64 位)中,当单个用户登录时,我会再次获得两批 session 信息:
Win 站名称:服务,ID:0
赢站名称:控制台,ID:1
任何人都可以向我解释/指出一个资源的方向,该资源可以解释两个操作系统之间的 session 信息如何以及为何不同?我如何根据这些信息确定有多少用户登录?
非常感谢
最佳答案
为什么 session 0 已更改:http://msdn.microsoft.com/en-us/library/bb756986.aspx
ID 为 65536 的 RDP-Tcp session 是一个监听 session - 它仅监听传入连接。
要确定有多少用户登录,我建议计算使用非空用户名的 session 数。您可以使用 WTSQuerySessionInformation 获取 session 的用户名。如果您使用 .NET 语言,您可能会找到 Cassia library使用起来更方便。
关于winapi - 了解 WTSEnumerateSessions 中的 session 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1445272/