我写的程序如下:
procedure TMainForm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Message.Result := 1;
application.Terminate;
end;
但是当我关机的时候,程序是关掉了,但是机器就停在那边了,没有反应了。一定要再关一下机器,才能关机。
请问问题在哪里啊?应该怎么写代码呢?
procedure TMainForm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Message.Result := 1;
application.Terminate;
end;
但是当我关机的时候,程序是关掉了,但是机器就停在那边了,没有反应了。一定要再关一下机器,才能关机。
请问问题在哪里啊?应该怎么写代码呢?
to detect if Windows is shutting
down. If your application needs to
save data before allowing the
shutdown to continue you can do that,
then allow Windows to shutdown
normally.procedure TfrmMain.WMQueryEndSession(var Message :
TWMQueryEndSession);
begin // Let the inherited message handler respond first
inherited; if DataHasChanged then begin
MessageBeep(MB_ICONQUESTION);
case MessageDlg('The current Windows
session is ending. Save league changes?',
mtConfirmation, [mbYes,mbNo,mbCancel],0) of
mrYes : begin
//Your data-saving code or method
//call goes here
Message.Result := 1;
end;
mrNo : Message.Result := 1;
mrCancel : Message.Result := 0;
end; {case} end
else
Message.Result := 1;
end;
注意Message关键字
procedure WMQueryEndSession(var Msg:TWMQUERYENDSESSION);message WM_QUERYENDSESSION;