|
Вопрос # 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
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|