Обработка выключения компа

Discussion in 'WASM.WIN32' started by AV2006, Mar 27, 2006.

  1. AV2006

    AV2006 New Member

    Blog Posts:
    0
    Hi All!



    Подскажите plz как обработать выключение компьютера.

    Проблема в том, что в обработчик WM_QUERYENDSESSION

    я попадаю и при выключении и при перезагрузке.

    А нужно отследить именно выключение.

    Возможно ли это отследить вобще на уровне API или

    необходимо писать драйвер?

    Намекните в какую сторону копать
     
  2. NullSessi0n

    NullSessi0n New Member

    Blog Posts:
    0
    Это надо перехватывать API-функции, вызываемые Winlogon при выходе из системы, так как система может быть завершена не только ExitWindowsEx, но и удалённо. Как следствие нужны права админа.

    Microsoft вообще охренела, так как при отправке WM_QUERYENDSESSION

    nSource=reserved

    fLogOff=ENDSESSION_LOGOFF.

    Когда бы тут были и другие значения, скажем, ENDSESSION_POWERDOWN/REBOOT и т.д., всё было бы проще и хватило бы самых минимальных прав.

    Ну и последнее (ты наверно знаешь, но всё равно напишу): можно использовать флажок принудительное завершение, и ты сообщение WM_QUERYENDSESSION и WM_ENDSESSION не получишь.
     
  3. AV2006

    AV2006 New Member

    Blog Posts:
    0
    NullSessi0n

    >Это надо перехватывать API-функции, вызываемые Winlogon >при выходе из системы, так как система может быть

    >завершена не только ExitWindowsEx,

    Т.е какие ф-ии? Что-то кроме ExitWindowEx?



    >можно использовать флажок принудительное завершение

    про force я в курсе, не критично



    если бы еще примеры перехвата ExitWindowsEx былоб просто супер. anyway, спасибо
     
  4. eugene_

    eugene_ New Member

    Blog Posts:
    0
    ACPI посмотри - последняя инстанция, так сказать