2008-10-11 93 views
3

我正在尝试为Windows编写更快的用户切换应用程序。 Win + L和选择用户非常麻烦。如果我以管理员身份启动任务管理器,它会显示活动用户,我可以选择一个并“连接”(如果我输入密码)。如何获取登录的本地Windows用户列表?

如何获取所有用户(或所有活动用户)的列表?

我正在使用C#(Visual Studio Express)。

回答

1

我想试试WTSEnumerateSessions以获得所有可用会话。

+0

正确的URL是http://msdn.microsoft.com /en-us/library/aa383833(VS.85).aspx – djb 2008-10-12 20:42:52

+0

下面显示了如何从C#调用这样的API:http://www.pinvoke.net/default.aspx/wtsapi32/WTSEnumerateSessions.html(感谢Philip Fourie http://stackoverflow.com/users/11123/philip-fourie) – djb 2008-10-12 20:44:01

1

您还可以使用NetWkstaUserEnum查看当前登录的所有用户;它不一定更好,但它是另一种选择。它有一个好处,它可以在不支持终端服务的旧系统上工作,但如果你使用C#,这可能不是问题。 :)

4

如果你不想与P处理/调用,您可以使用Cassia,它包装丑陋的你:

using Cassia; 

foreach (ITerminalServicesSession session in new TerminalServicesManager().GetSessions()) 
{ 
    if (!string.IsNullOrEmpty(session.UserName)) 
    { 
     Console.WriteLine("Session {0} (User {1})", session.SessionId, session.UserName); 
    } 
} 
相关问题