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