2008-10-11 87 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); 
    } 
} 
相關問題