Добрый вечер!
Сразу к делу:
Есть сервис, которому необходимо при завершении пользовательской сессии изменить некоторые ключи в реестре.
Отсюда вопрос — как в сервисе узнать о надвигающемся log of?
Пробовал SetConsoleCtrlHandler и CTRL_LOGOFF_EVENT. Для консольного варианта работает, как запускаю в виде службы — даже в обработчик ничего не падает.
Пробовал RegisterServiceCtrlHandlerEx, ServiceCtrlHandlerEx и SERVICE_CONTROL_SESSIONCHANGE. Работает, однако при получении этого эвента сессия уже мертвенькая и в реестр пользователя не попасть.
Дополнительный exe со скрытым окном или консолью в каждой пользовательской сессии тоже не вариант по некоторым причинам.
Отсюда следующий вопрос: Неужели в Windows нет оповещения служб о завершении сеанса работы пользователя? не может же такого быть, чтобы ни одной службу не надо было что-то сохранить\изменить для завершающего работу пользователя?
Заранее благодарю за ответы и комментарии.
28.10.13 11:52: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт