Re: Как получить SID текущего пользователя (Win 2000 и выше)
От: Andrew S Россия http://alchemy-lab.com
Дата: 18.11.04 09:42
Оценка:
A>Из службы, запускаемой под LocalSystem делаю:
A>1. OpenInputDesktop(0, FALSE, DESKTOP_READOBJECTS);
A>2. GetUserObjectInformation(..., UOI_USER_SID, ...)
A>Служба определена как интерактивная, только вот OpenInputDesctop(...) возвращает NULL, описание ошибки "Incorrect function".

A>В чем может быть проблема?

A>Может есть другой способ получить SID текущего пользователя (обязательно залогиненого)?

Непосредственно с OpenInputDesktop не выйдет. Используйте поиск — вопрос поднимался и были приведены решения. Вкратце — находим в текущей интерактивной оконной станции\десктопе процесс с характерным названием (например, explorer.exe) и пользуем его SID. Кстати, только что подумал, что можно GetDesktopWindow, GetWindowThreadProcessId, OpenProcess — а дальше сами знаете. Естественно, для этого сервис должен либо быть интерактивным, либо его надо интерактивизировать на время Как — тоже в поиске.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.