Re[2]: Перехват события log of из сервиса
От: MindGHost Россия  
Дата: 25.10.13 17:12
Оценка:
Здравствуйте, okman, спасибо за ответ. Вы писали:

O>Да, в MSDN неявно указывается, что сообщения типа WTS_SESSION_LOGOFF приходят уже

O>после того, как соответствующее событие произошло, то есть это post-callback.

Согласен. Я это наковырял уже опытным путем. Но я не понимаю почему SetConsoleCtrlHandler и CTRL_LOGOFF_EVENT не работают.
Ведб в МСДН английским по белому написано:
"Note that this signal is received only by services. Interactive applications are terminated at logoff, so they are not present when the system sends this signal."
Хотя, с другой стороны, этот вариант может тоже оказаться post_callback, если "they are not present when the system sends this signal".

O>А почему, интересно ?

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

Потому что дополнительный exe, который еще и антивирь какой-нить ограничит (Каспер вон пости про все подряд спрашивает), или юзвер грохнет ненароком или еще чего.
А "некорректный" (без записи определенных ключеф в реестре пользователя) выход обернется бякой для пользователя, для продукта и большой шишкой для меня. =)
Этот вариант резервный, так сказать. Все еще надеюсь что-нить придумать, или кто-нить что-нить подскажет.

O>Можно попробовать добавить событие в системный планировщик.

Не пробовал. А что туда можно воткнуть?

O>Или написать Winlogon Notification Package (для систем, предшествующих Windows Vista).

Сейчас рынок заполнен Win 7 в основном, так что тоже не вариант. Смотрел я в эту сторону и был глубоко разочарован увидев "not supported from Vista".
Не судите строго — я еще учусь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.