Re[3]: Service, Winlogon и диалоговые окна
От: Demon Россия  
Дата: 17.08.06 09:13
Оценка:
Здравствуйте, Adm, Вы писали:

Adm>Спасибо. Получается выводить окно на видимый десктоп из Thread. Хотелось бы вывести на Winlogon диалог, который откомпилирован как exe. При создании формы наблюдается следующая ситуация: если сервис неинтерактивный, OpenInputDesktop возвращает ошибку 1(Неверная функция),

Нормально, неинтерактивные сервисы запускаются на WindowsStation, которая вообще не имеет десктопа.

Adm>в случае интерактивного сервиса OpenInputDesktop проходит нормально, но SetThreadDesktop возвращает ошибку 170(Требуемый ресурс занят). Процесс запускается функцией CreateProcessAsUser с токеном сервисного процесса.

Хз, у меня вот так работает. Правда напрямую из сервиса.
     HDESK hdeskSave = GetThreadDesktop ( GetCurrentThreadId() ); 
     HDESK oldd = OpenInputDesktop ( 0, FALSE, MAXIMUM_ALLOWED );
     if ( ! oldd || !SetThreadDesktop ( oldd ) )
     {
     }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.