Hi All! Подскажите plz как обработать выключение компьютера. Проблема в том, что в обработчик WM_QUERYENDSESSION я попадаю и при выключении и при перезагрузке. А нужно отследить именно выключение. Возможно ли это отследить вобще на уровне API или необходимо писать драйвер? Намекните в какую сторону копать
Это надо перехватывать API-функции, вызываемые Winlogon при выходе из системы, так как система может быть завершена не только ExitWindowsEx, но и удалённо. Как следствие нужны права админа. Microsoft вообще охренела, так как при отправке WM_QUERYENDSESSION nSource=reserved fLogOff=ENDSESSION_LOGOFF. Когда бы тут были и другие значения, скажем, ENDSESSION_POWERDOWN/REBOOT и т.д., всё было бы проще и хватило бы самых минимальных прав. Ну и последнее (ты наверно знаешь, но всё равно напишу): можно использовать флажок принудительное завершение, и ты сообщение WM_QUERYENDSESSION и WM_ENDSESSION не получишь.
NullSessi0n >Это надо перехватывать API-функции, вызываемые Winlogon >при выходе из системы, так как система может быть >завершена не только ExitWindowsEx, Т.е какие ф-ии? Что-то кроме ExitWindowEx? >можно использовать флажок принудительное завершение про force я в курсе, не критично если бы еще примеры перехвата ExitWindowsEx былоб просто супер. anyway, спасибо