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

Тема в разделе "WASM.WIN32", создана пользователем AV2006, 27 мар 2006.

  1. AV2006

    AV2006 New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    2
    Hi All!



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

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

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

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

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

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

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

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    Это надо перехватывать API-функции, вызываемые Winlogon при выходе из системы, так как система может быть завершена не только ExitWindowsEx, но и удалённо. Как следствие нужны права админа.

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

    nSource=reserved

    fLogOff=ENDSESSION_LOGOFF.

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

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

    AV2006 New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    2
    NullSessi0n

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

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

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



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

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



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

    eugene_ New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    93
    Адрес:
    Russia
    ACPI посмотри - последняя инстанция, так сказать