如何获取Windows会话列表?

Mar*_*tin 8 c# windows

我想找到一种方法来获取Windows会话列表?我需要与用户选项卡上任务管理器中显示的信息相同的信息.我需要知道用户是否处于活动状态以及他/她是否在远程桌面会话中登录.

有关如何使用C#/ Windows XP Pro做到这一点的想法?

pjp*_*pjp 9

作为起点,您可以通过运行命令获取登录用户的列表

qwinsta
Run Code Online (Sandbox Code Playgroud)

从命令提示符.

这将给出输出

C:\WINDOWS\system32>qwinsta
SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
>console           me                       0  Active  wdcon
rdp-tcp                                 65536  Listen  rdpwd
Run Code Online (Sandbox Code Playgroud)

并列出任何远程会话.


Kev*_*ose 5

通过P/Invoke 使用LsaEnumerateLogonSessions.枚举后你还需要LsaFreeReturnBuffer来清理.


Ree*_*sey 4

我相信您需要使用 P/Invoke 来检索此信息。

相关 API 记录在此 MSDN 页面中。