2017-01-13 30 views
0

У меня есть приложение win32 для пользователя. Это перечисляет все детали процесса вместе с ProcessId. Мне нужно напечатать имя пользователя вместе с идентификатором сеанса. SessionID перечисляется с использованием метода ProcessIdToSessionId(). Я хочу напечатать имя пользователя соответствующего SessionID. Это приложение специально разработано для WindowsXP, поэтому API должен поддерживать WindowsXP. Если кто-нибудь знает решение, поделитесь им.Как найти имя пользователя из идентификатора сеанса?

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

@ Маршал Шебастиан потерпел неудачу, как именно? Пожалуйста, будьте более конкретными. –

ответ

1

WTSQuerySessionInformation() с параметром WTSInfoClass, установленным в WTSUserName:

Нуль-завершённая строка, которая содержит имя пользователя, связанного с сессией.

+0

[WTSQuerySessionInformation] (https://msdn.microsoft.com/en-us/library/aa383838.aspx) также используется, этот метод не поддерживается в некоторых из наших Windows XP xp 32-разрядных ноутбуков. Вот почему я спросил об альтернативном решении. –

+0

@ Маршал Себастиан, тогда вы должны были сказать это заранее и объяснили, как он не работает для вас. –