Код:
type
TForm1 = class(TForm)
private
procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;//создаем форму для отслеживания завершения работы
//для потока
cs : TCriticalSection;
UpdateThread : TUpdateThread;
procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
showmessage('111111');
Message.Result := Integer(CallTerminateProcs);
end;
procedure TUpdateThread.Execute;
var
MyForm :TFORM;
begin
MyForm := Form1.Create(Application);
MyForm.Show();
end;
begin
//создаем поток на отслеживание выключения компьютера
cs := TCriticalSection.Create;
UpdateThread := TUpdateThread.Create(true);
UpdateThread.Resume();
end.
вот код полностью... собственно ничего особенно не меняется. при завершении работы компа вместо надписи 111 выскакивает сообщение "завершение работы Project1 через 15 секнуд, завершить задачу?"