Узнать о завершении работы Windows

Материал из DRKB

Узнать о завершении работы Windows[править | править код]

Если текст в Memo1 был изменен, то программа не разрешает завершения сеанса Windows.

type
  TForm1 = class(TForm)
  private
    procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
  end;

implementation

procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
  Msg.Result := Integer(not Memo1.Modified);
end;


e-mail: delphi4all@narod.ru
e-mail: aleksey@sch103.krasnoyarsk.su


Author: : Алексей Денисов
ID: 01673



Как корректно перехватить сигнал выгрузки операционной системы, если в моей программе нет окна


Используй GetMessage(), в качестве HWND окна пиши NULL (на Паскале - 0). Если в очереди сообщений следующее - WM_QUIT, то эта функция фозвращает FALSE. Если ты пишешь программу для Win32, то запихни это в отдельный поток, организующий выход из программы.


Source: http://delphiworld.narod.ru/
ID: 01674