Здравствуйте, acronim, Вы писали:
A>На машинке может быть запущено несколько сессий (ВинХП или сервер с терминалами) A>Если интерактивно работают несколько пользователей, то кому отображать диалог? A>Если использовать флаг интерактивность, то диалог появится на рабочем столе того, кто на нулевой сесии A>(админ на первой сесии запустил сервис, а морда отобразилась у гося на нулевой сесии. Вот так..) A>Советею запускать второе приложение на нужной сесии для интерактивного взаимодействия с пользователем
Но если я Админ, запустил сервис из своего аккаунта, у меня есть все права. Мне нужен только десктоп. Как мне запускать через CreateProcess() или CreateProcessAsUser() ??
Я пробовал MSDN'овский пример, где сперва логинится юзер затем вешаются его права на "winsta0\default"desktop в параметрах STARTUPINFO. Получил ошибку 1314 — ERROR_PRIVILEGE_NOT_HELD на ХР.
Можно ли как то поменять поставить lpDesktop так чтобы использовать уже существующий админовский десктоп или уж ладно NULL когда этот десктоп недоступен?