Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Как в своей программе отловить выключение компьютера?   Найти похожие ветки 

 
Volf_555   (2005-11-08 03:19) [0]

Как реализовать программу, которая будет висеть в трее и ждать определённого сообщения?
В данном случае - сообщение про выключение компьютера. И после того, как это сообщение будет обнаружено - будут выполняться определённые действия.


 
Джо ©   (2005-11-08 03:50) [1]

Сообщение WM_QUERYENDSESSION.


 
vertal ©   (2005-11-08 17:10) [2]

Только окончание текущей сессии - не то же самое, что выключение компьютера


 
Джо ©   (2005-11-08 17:14) [3]


>  [2] vertal ©   (08.11.05 17:10)

Вы правы, выдергивание шнурка из сети электропитания вряд ли инициирует сообщение WM_QUERYENDSESSION.


 
Leonid Troyanovsky ©   (2005-11-08 17:40) [4]


> vertal ©   (08.11.05 17:10) [2]
> Только окончание текущей сессии - не то же самое, что выключение


Для сидящих в трее оно (или WM_ENDSESSION) знаменует конец света.
В любых других случаях, выполнение неких определенных действий
представляется весьма маловероятным.

--
Regards, LVT.


 
Volf_555   (2005-11-08 19:14) [5]

Как тогда решить эту проблему другим способом?


 
Джо ©   (2005-11-08 19:21) [6]


>  [5] Volf_555   (08.11.05 19:14)
> Как тогда решить эту проблему другим способом?

Какую проблему? Пока есть только одна проблема, вот она, из оригинального поста: "Как реализовать программу, которая будет висеть в трее и ждать определённого сообщения? ". Решается проблема просто: пишется приложение, которое "висит в трее" и ждет определенного сообщения.
Уж не обессудь, но складывается ощущение, что ты хочешь сделать работу чужими руками. Или я ошибаюсь?


 
vertal ©   (2005-11-08 21:37) [7]

> Вы правы, выдергивание шнурка из сети электропитания вряд ли
> инициирует сообщение WM_QUERYENDSESSION.
Я имел в виду не это, а возможность выбора пункта "Завершение сеанса ..." - сообщение это будет, но компьютер то не выключится. Я сам не знаю точно как, но наверное можно отловить именно выключение компьютера, только программа тогда должна загружаться и оставться загруженной даже когда в систему не вошел пользователь.


 
Джо ©   (2005-11-08 21:44) [8]


>  [7] vertal ©   (08.11.05 21:37)

Нет, отдельного сообщения нет.
WM_QUERYENDSESSION посылается во всех случаях. Для того, чтобы разделить завершение сеанса и перезагрузку/выключение, нужно проверять установку флага ENDSESSION_LOGOFF в lParam. Разделить же перезагрузку и выключение вообще не представляется возможным, такая информация в сообщении не передается.


 
Джо ©   (2005-11-08 21:45) [9]


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

Это называется сервис.


 
Anatoly Podgoretsky ©   (2005-11-08 22:00) [10]

Джо ©   (08.11.05 21:44) [8]
А зачем, логически перезагрузка это выключение с последующим включением.


 
Джо ©   (2005-11-08 22:13) [11]


>  [10] Anatoly Podgoretsky ©   (08.11.05 22:00)

Это-то я понимаю. Стараюсь предвидеть дальнейшие вопросы, поэтому сразу и описал, какого рода информацию можно вытянуть из сабжевого сообщения.



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.064 c
14-1135000952
Pazitron_Brain
2005-12-19 17:02
2006.01.15
Электронные репетиторы


2-1135705069
melnik11
2005-12-27 20:37
2006.01.15
Как сделать так что нажав на Button открывался какой либо файл


2-1135315670
neat
2005-12-23 08:27
2006.01.15
Обработка исключения


2-1135592191
_Lucifer_
2005-12-26 13:16
2006.01.15
Выполнение обработке в одной форме, а показ прогресса в другой.


14-1135225381
konda
2005-12-22 07:23
2006.01.15
Чем потестировать компьютер?