Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007

Вариант 1:

Author: Даниил Карапетян (delphi4all@narod.ru)

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

...
private
    procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
...
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
  Msg.Result := integer(not Memo1.Modified);
end;

Автор справки: Алексей Денисов (aleksey@sch103.krasnoyarsk.su)


Вариант 2:

Author: Nomadic

Source: DelphiWorld 6.0 https://delphiworld.narod.ru/

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

Используй GetMessage(), в качестве HWND окна пиши NULL (на Паскале - 0).

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

Previous page:
Приостановить ПК
Top:
DRKB
Next page:
Как программно вызвать окно "Завершение работы Windows"?