Перехват события log of из сервиса
От: MindGHost Россия  
Дата: 25.10.13 15:36
Оценка:
Добрый вечер!

Сразу к делу:
Есть сервис, которому необходимо при завершении пользовательской сессии изменить некоторые ключи в реестре.
Отсюда вопрос — как в сервисе узнать о надвигающемся log of?

Пробовал SetConsoleCtrlHandler и CTRL_LOGOFF_EVENT. Для консольного варианта работает, как запускаю в виде службы — даже в обработчик ничего не падает.
Пробовал RegisterServiceCtrlHandlerEx, ServiceCtrlHandlerEx и SERVICE_CONTROL_SESSIONCHANGE. Работает, однако при получении этого эвента сессия уже мертвенькая и в реестр пользователя не попасть.
Дополнительный exe со скрытым окном или консолью в каждой пользовательской сессии тоже не вариант по некоторым причинам.

Отсюда следующий вопрос: Неужели в Windows нет оповещения служб о завершении сеанса работы пользователя? не может же такого быть, чтобы ни одной службу не надо было что-то сохранить\изменить для завершающего работу пользователя?

Заранее благодарю за ответы и комментарии.

28.10.13 11:52: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Не судите строго — я еще учусь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.