Здравствуйте NeuronViking, Вы писали:
NV>Нужно получить имя _текущего_ пользователя в ситеме изнутри системного сервиса, который _должен_ работать от SYSTEM/Authority. Проблема вот в чем: в системе может быть несколько одновременно активных сессий и единственное что остается — это получить список всех активных пользователей на данный момент в системе, для этого мне нужно HWND всех десктопов принадлежащих существующим пользователям в системе(ну разве что исключая .\Default). Вот собсно как мне это покрасивее и надежнее определить? Буду благодарен за любой рациональный совет!
Если ты имеешь дело с Terminal Services или XP, тогда WTSEnumerateProcesses. Там в структурке возвращается SID создавшего пользователя и Session ID. Дубликаты отбросить.
В остальных системах обычно перечисляют подключи HKEY_USERS, ищут процесс explorer.exe и m.д. Вот дикуссия на подобную тему:
http://www.rsdn.ru/?forum/?gid=3&mid=16981&tid=16694Автор: Alex Fedotov
Дата: 13.12.01