-
Добрый день. В продолжении темы про запуск приложения из сервиса в Win Vista и позже http://pda.delphimaster.net/?id=1376897371&n=5
Перечитал документацию. Изучил подробнее (а главное осознал) о том, что все сервисы работают в нулевой сессии, а пользователи начиная с Висты стали логинится в сессию начиная с 1.
Отсюда вопрос: если сессии кроме нулевой нет, как можно программно авторизовать в системе пользователя (если хранить для сервиса логин и пароль от учетки под которой надо авторизоваться). Загрузить его профиль? Чтобы в дальнейшем можно было получить его токен и запускать под ним интерактивно приложения. -
Eraser © (22.10.13 15:41) [1]
> Kirill © (22.10.13 15:37)
> как можно программно авторизовать в системе пользователя
и
> Чтобы в дальнейшем можно было получить его токен и запускать
> под ним интерактивно приложения
это две совершенно разные задачи. какой функционал требуется от приложения? просто автозапуск нужной программы при логоне пользователя? -
Нет. Нужно запускать приложения при перезапуске сервера. Но приложение оконное. И еще порядок приложений важен (это мелочи). Из-за новых ОС запуск приложений с оконным (интерактивным) интерфейсом необходимо выполнять в сессии 1, т.е. надо ее создать вручника.
-
Rouse_ © (22.10.13 16:14) [3]
-
> Оно?
Сейчас нет :(
Оно запускает процесс уже под залогиненым пользователем. А нам надо его сначала авторизовать в системе без присутствия самого пользователя и без программ типа Autologon от Sysinternals (это я оставлю совсем на крайний случай). -
Как-то нехорошо это - пользователя нет, а его кто-то залогинил.
-
Rouse_ © (22.10.13 18:17) [6]
> А нам надо его сначала авторизовать в системе без присутствия
> самого пользователя
Без присутствия пользователя - это сервис. Если пользователя нет, кому на твои окошки смотреть и кнопки жамкать? -
Rouse_ © (22.10.13 18:19) [7]В крайнем случае смотреть нужно в сторону winlogon (реализуешь в виде плагина к системе) - но смысла в итоге это не поменяет.
-
> Как-то нехорошо это - пользователя нет, а его кто-то залогинил.
"Это сервисный пользователь" - под ним много регламентных заданий выполняется.
Всем большое спасибо. Здесь дали наводку на функцию http://forum.vingrad.ru/forum/topic-370184/anchor-entry2587723/0.html
А запуск процесса под этим пользователем http://www.cromis.net/blog/2010/01/how-to-start-a-gui-process-from-service-under-windows-vista7/
Пару часов напильником и сервис опять работает (уже под новые OS).