Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
2-1135660324
Рубей
2005-12-27 08:12
2006.01.15
Переход по окнам формы


14-1135098605
Piter
2005-12-20 20:10
2006.01.15
Может кто-нибудь дать аккаунт на www.filepost.ru? :)


2-1135609972
puskin
2005-12-26 18:12
2006.01.15
MS SQL и D7


2-1135271682
nirvana
2005-12-22 20:14
2006.01.15
Запись значений класса в файл.


4-1131268194
spyrytus
2005-11-06 12:09
2006.01.15
Как в DLL можно вставить ресурс ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский