2017-01-13 45 views
0

我有一個用戶win32應用程序。這枚舉與ProcessId一起列舉了所有的流程細節。我需要打印用戶名和會話ID。 SessionID枚舉使用ProcessIdToSessionId()方法。我想打印相應的SessionID的用戶名。此應用程序是專門爲WindowsXP設計的,因此API應該支持WindowsXP。如果有人知道解決方案,請分享。如何從會話ID中查找用戶名?

DWORD dwSessionId,dwPid,dwErr; 
char* Uname; 
ProcessIdToSessionId(dwPid,&dwSessionId); 
+0

的可能的複製[C++獲取用戶名從過程(http://stackoverflow.com/questions/2686096/c-get-username-from-process) – Ari0nhh

+0

我試着與該代碼,但它失敗Windows XP。還有其他方法可以找到它嗎? –

+0

@MarshalSebastian失敗了怎麼回事?請更具體一些。 –

回答

1

WTSQuerySessionInformation()WTSInfoClass參數設置爲WTSUserName

包含與會話相關聯的用戶名稱的空終止字符串。

+0

[WTSQuerySessionInformation](https://msdn.microsoft.com/zh-cn/library/aa383838.aspx )也用這種方法在我們的一些windows xp 32位筆記本電腦中不支持。這就是我詢問替代解決方案的原因。 –

+0

@MarshalSebastian那麼你應該先說明一下,並解釋它是如何爲你工作的。 –