关机时如何自动关闭程序?
我写的程序如下:
procedure TMainForm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Message.Result := 1;
application.Terminate;
end;
但是当我关机的时候,程序是关掉了,但是机器就停在那边了,没有反应了。一定要再关一下机器,才能关机。
请问问题在哪里啊?应该怎么写代码呢?
问题点数:20、回复次数:4Top
1 楼liangyong007a((梦里有云,心中有天地)(探花秀))回复于 2006-03-15 15:52:23 得分 20
You can use the following procedure
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;
Top
2 楼liangyong007a((梦里有云,心中有天地)(探花秀))回复于 2006-03-15 15:53:37 得分 0
拦截一个重新启动的消息
注意Message关键字
procedure WMQueryEndSession(var Msg:TWMQUERYENDSESSION);message WM_QUERYENDSESSION;
Top
3 楼Rainstorey(Rain)回复于 2006-03-16 09:06:15 得分 0
application.Terminate;->self.close;Top
4 楼skertone()回复于 2006-03-16 15:04:29 得分 0
Terminate;有时要等干完其它P事才结束,
要是你急于退出程序的话:
Halt;Top




