В wXP появились функции WTSGetActiveConsoleSessionId/WTSQueryUserToken, которые позволяют легко получить токен юзера, который залогинен на физической консоли. Как проще тоже самое сделать в w2000? На ум приходит перебор всех процессов в системе + OpenProcessToken для explorer.exe. Но, возможно, есть способ проще?
Здравствуйте, Аноним, Вы писали:
А>Приветствую!
А>В wXP появились функции WTSGetActiveConsoleSessionId/WTSQueryUserToken, которые позволяют легко получить токен юзера, который залогинен на физической консоли. Как проще тоже самое сделать в w2000? На ум приходит перебор всех процессов в системе + OpenProcessToken для explorer.exe. Но, возможно, есть способ проще?
Насколько я помню terminal services могли быть установлены и на win2000. Так что вы можете попробовать LoadLibrary(wtsapi32.dll) и потом GetProcAddress(WTSQueryUserToken).
WTSGetActiveConsoleSessionId не является надёжным способом получить юзера за физической консолью. Если удалённый пользователь присоединяется с помощью mstsc /console, то его сессия возвращается как WTSGetActiveConsoleSessionId.