中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
用Delphi控制Windows的关闭功能
作者:未知 时间:2005-08-07 20:58 出处:编程爱好者网站 责编:chinaitpower
              摘要:用Delphi控制Windows的关闭功能
我们经常会遇到在安装驱动程序或应用程序时,对系统配置进行了修改而必须重新启动Windows才能使设置生效,这时往往会弹出一个提示用户是否重新启动Windows的对话框。但有时又不希望关闭Windows,例如:一个程序正在工作,数据尚未保存,而另一个程序执行了“关闭Windows”的操作(如“网络蚂蚁”的定时关机功能),就会影响用户工作甚至造成数据丢失。此时,我们可在程序中设置防止关闭Windows的代码,只要本程序在运行中关闭Windows时,都将弹出对话框要求用户确认。

  对于以上功能,我们完全可以通过编程来实现,下面就以Delphi编程来完成。

  关闭(或重启)Windows

  要关闭Windows,可利用API函数ExitWindowsEx(),它能够实现“注销当前用户”、“关闭Windows”以及“关闭Windows并重启”等功能,具体格式和用法如下:

  ExitWindowsEx(关闭类型参数,系统保留参数);

  其中,系统保留参数无特定意义,一般写0即可;关闭类型可以是以下几种:

  EWX_FORCE:强制关闭,Windows不会发送任何消息给正运行的程序,这可能导致数据丢失;

  EWX_LOGOFF:关闭所有正在运行的程序,注销当前用户并重新登录;

  EWX_POWEROFF:关闭Windows并关机,当然,系统必须支持电源管理;

  EWX_REBOOT:关闭Windows并重新启动;

  EWX_SHUTDOWN:关闭Windows,缓冲区内的数据将被写入磁盘。

  我们来看一个实例,首先新建一窗体,在上面放置一组单选钮,命名为rgExit,共三个选项:注销当前用户并重新登录;关闭Windows并重新启动;关闭Windows。再放置两个按钮,Botton1用于确认,Botton2用于取消。代码如下:

  Implementation

  {$r *.dfm}

  Procedure tform1.button1click(sender: tobject);

  Begin

  case rgexit.itemindex of

  0: exitwindowsex(ewx_

  logoff,0); //注销当前用户并重新登录

  1: exitwindowsex(ewx_reboot,0); //关闭Windows并重新启动

  2: exitwindowsex(ewx_shutdown,0); //关闭Windows

  end;

  End;

  Procedure tform1.button2click(sender: tobject);

  Begin

  close;

  End;

  防止关闭Windows

  要实现“防止关闭Windows”这一功能其实很简单,只要在程序主窗体的OnCloseQuery事件中加入以下代码即可:

  Procedure tform1.formclosequery(Sender: tobject; var canclose: Boolean);

  Begin

  If messagedlg('是否允许关闭?', mtconfirmation, mbokcancel, 0) = mrok then

  Canclose := True

  Else

  Canclose := False;

  End;

  如果把CanClose设为False,表示不允许关闭Windows;如果CanClose设为True,则允许关闭。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有