Re: Перехват события log of из сервиса
От: okman Беларусь https://searchinform.ru/
Дата: 25.10.13 16:52
Оценка:
Здравствуйте, MindGHost, Вы писали:

MGH>Отсюда вопрос — как в сервисе узнать о надвигающемся log of?

MGH>Пробовал RegisterServiceCtrlHandlerEx, ServiceCtrlHandlerEx и SERVICE_CONTROL_SESSIONCHANGE. Работает, однако при получении этого эвента сессия уже мертвенькая и в реестр пользователя не попасть.

Да, в MSDN неявно указывается, что сообщения типа WTS_SESSION_LOGOFF приходят уже
после того, как соответствующее событие произошло, то есть это post-callback.

MGH>Дополнительный exe со скрытым окном или консолью в каждой пользовательской сессии тоже не вариант по некоторым причинам.


А почему, интересно ?
Запустить скрытый процесс в сессии пользователя, ждать WM_ENDSESSION...
Можно еще c SetProcessShutdownParameters поиграться, наверное, чтобы процесс
получал это сообщение по возможности раньше остальных. Чем не вариант ?

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


Можно попробовать добавить событие в системный планировщик.
Или написать Winlogon Notification Package (для систем, предшествующих Windows Vista).
Но не уверен, что будет работать так, как требуется (поймать logoff до уничтожения сессии).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.