CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

关机时如何自动关闭程序?

楼主yinweixian(blackyin)2006-03-15 15:19:15 在 Delphi / 语言基础/算法/系统设计 提问

我写的程序如下:  
  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

相关问题

  • 如何在关机时自动关闭程序?
  • 自动关机程序
  • 自动关机程序
  • 请教,开机后自动运行一C#程序,关机前自动关闭此C#程序如何实现?
  • window 关机不能关闭程序?
  • 怎样写自动关机程序
  • 关机如何自动运行程序
  • 如果在程序中实现自动关机
  • 如何写一个自动关机程序?
  • 关于自动关机程序的问题

关键词

  • application
  • 关机
  • wmqueryendsession
  • twmqueryendsession
  • 程序
  • message
  • terminate
  • procedure
  • saving
  • begin

得分解答快速导航

  • 帖主:yinweixian
  • liangyong007a

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo