用户名: 密码: 验证码:           网站地图  高级搜索  RSS订阅  收藏本站
您的位置:主页 > 程序编程 > Delphi >

用Delphi实现禁止用户关闭Window9X

[ 来源:- | 作者:- | 更新日期:2008-3-26 13:03:24 | 人气: | 评论 0 条 ]
----在软件的安装或演示操作等过程中,假如关闭WIN9X会产生严重的后果,就必须禁止用户关闭WIN9X,直到完成相应的操作,那么如何才能禁止用户关闭WIN9X呢?其实很简单,当用户关闭WIN9X时,系统会发送给各应用程序一个消息wm_queryendsession,告诉各应用程序要关机了,假如反馈回来的消息值为0,那么WIN9X就不能关机。因此,截获wm_queryendsession,并反馈回0,大功就告成了,下面是一个例子。

----在下面这个例子中,我们在窗体中加入一个复选框(CHECKBOX),假如用户不选中它,则无法关闭WIN9X,假如选中它,才可以关闭。在实际应用中,用户可首先设定一个布尔变量,当所需的作操都完成后,使其值变化,当程序检测到这个变量的值变化后才答应关闭WIN9X。为方便大家使用,给出窗体的完整代码(很短): hot007.com

unitUnit1;

interface

uses
Windows,Messages,SysUtils,
Classes,Graphics,Controls,
Forms,Dialogs,StdCtrls;

type
TForm1=class(TForm)
CheckBox1:TCheckBox;
private
{Privatedeclarations}
//声明拦截WM_QueryEndSession消息的过程
procedureWMQueryEndSession(varMsg:TMessage);
messageWM_QueryEndSession;
public
{Publicdeclarations}
end;

var
Form1:TForm1;

implementation

{$R*.DFM}

procedureTForm1.WMQueryEndSession
(varMsg:TMessage);
begin
ifCheckBox1.CheckedthenMsg.Result:=1
elseMsg.Result:=0;
end;

end.
 文章来源于www.jc567.cn 

----运行上面的程序,首先不要选中复选框,在WIN9X的“开始”菜单中选择“关闭系统\关闭计算机或重新启动计算机”,你将发现屏幕闪烁了一下又恢复了正常;将复选框选中,再关闭计算机,这下就可如愿了。 hot007.com

----程序调试环境:DELPHI4,中文WIN98。 hot007.com


Tags:用Delphi实现禁止用户关闭Window9X
您的评论
用户名: 新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为