Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 451

/ вопрос открыт /

Здравствуйте! у меня такая проблема.... нужно отловить сообщение оси о выключении, перезагрузке, переходе в ждущий режим, о выходе из системы.
пробовал использовать:

 procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
 inherited;
ShowMessage('!!!!!!');
 Msg.Result := 1;
 end;
но эта процедура срабатывает на все события, а мне бы надо различить отдельно каждое, т.е. если перезагрузка-одно действие, если выключение-другое...... если конечно это возможно осуществить...
Буду очень благодарен за помощь...

Ученый Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ученый (статус: 8-ой класс)
Вопрос отправлен: 24 февраля 2009, 17:45
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Ученый!
Надо анализировать Msg.lParam.
Если он 0 - значит это ребут или выключение. При чем, как сказано, определить, что именно происходит - нельзя (it is not possible to determine which event is occurring).
1 - Приложение использует файл, который должен быть заменёт, скорее всего нехватка ресурсов
$40000000 Приложение насильно закрывают
$80000000 завершение сеанса (log of)

Детальнее - http://msdn.microsoft.com/ru-ru/library/aa376890(en-us).aspx

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 24 февраля 2009, 18:08
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 24 февраля 2009, 17:45; участников в обсуждении: 1.
Ученый

Ученый (статус: 8-ой класс), 24 февраля 2009, 17:45 [#1]:

Ось- Windows XP

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.03 сек.