none
Выполнение программы при завершение работы системы. RRS feed

  • Общие обсуждения

  • Добрый день.

    Требуется выполнить некоторые действия ( которые могут быть достаточно продолжительными) при завершении работы системы.
    Сейчас это реализовано, через перехват WM_QUERYENDSESSION. Но есть другой способ. В частности, требуемое поведение наблюдается при установке обновлений при завершении работы
    компьютера и в работе некоторых других программ. Например, одна из используемых мною программ позволяет указать выполнение некоторых задач при завершении работы системы.
    И тогда оное выглядит следующим образом:

    1.

    2.

    3.

    Как видно из скриншотов, последнее сообщение сформировано используемой программой ( ОС — англ, программа — русская ).
    Вопрос: как это реализовано? Подскажите, пожалуйста, в какую сторону копать?

Все ответы

  • Решение с отловкой события WM_QUERYENDSESSION и WM_ENDSESSION вполне правильное. Тот скриншот с выключением компьютера, возможно я ошибаюсь, но кажется нет API чтобы можно было добиться этого.

    Для связи [mail]

  • Как-то это же реализовано. Решение WM_QUERYENDSESSION и WM_ENDSESSION имеет недостаток. Возможность отмены завершения работы. Например, такая гипотетическая ситуация: работник запустил длительное по времени задание. Система вывела сообщение, что мое приложение заблокировала остановку системы с кнопками "Принудительно перезагрузить" и "Отмена". Ушел домой. Подошел второй и из вредности нажал "Принудительно перезагрузить" или "Отмена" и похозяйничал в компьютере. В принципе, перезагрузка моему приложению не так страшна. Меня смущает "Отмена". При решении, приведенном в первом посте, такой ситуации не было бы.
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]

    11 июля 2012 г. 8:47
  • Мне кажется, копать надо в сторону http://msdn.microsoft.com/ru-RU/library/windows/desktop/bb986746(v=vs.85).aspx

    Хотя скорее всего это неопубликованные API

    10 декабря 2012 г. 3:33