2.禁止关闭WINDOWS是通过关闭WINDOWS98时,系统向各应用程序发送的一个消息wm_queryendsession,通知各应用程序要关机了,如反馈回来的消息值为0,那么就不能关闭WINDOWS98.www.goodsgy.com
应用实例:www.goodsgy.com
建立含有如下控件的窗体:
控件 控件名 CAPTIONwww.goodsgy.com
窗体 FORM1 重新启动WINDOWS系统www.goodsgy.com
复选框 CHECKBOX1 强行结束当前的用户进程www.goodsgy.com
复选框 CHECKBOX2 强行关机www.goodsgy.com
复选框 CHECKBOX3 强行重新启动机器www.goodsgy.com
复选框 CHECKBOX4 禁止关机www.goodsgy.com
复选框 CHECKBOX5 退出www.goodsgy.com
2.程序清单:www.goodsgy.com
unit CLSW;www.goodsgy.com
interfacewww.goodsgy.com
useswww.goodsgy.com
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,www.goodsgy.com
StdCtrls;www.goodsgy.com
typewww.goodsgy.com
TForm1 = class(TForm)www.goodsgy.com
CheckBox1: TCheckBox;www.goodsgy.com
CheckBox2: TCheckBox;www.goodsgy.com
CheckBox3: TCheckBox;www.goodsgy.com
CheckBox4: TCheckBox;www.goodsgy.com
CheckBox5: TCheckBox;www.goodsgy.com
procedure CheckBox1Click(Sender: TObject);www.goodsgy.com
procedure CheckBox2Click(Sender: TObject);www.goodsgy.com
procedure CheckBox3Click(Sender: TObject);www.goodsgy.com
procedure CheckBox5Click(Sender: TObject);www.goodsgy.com
privatewww.goodsgy.com
procedure wmqueryendsession(var msg:TMessage);www.goodsgy.com
message wm_queryendsession;www.goodsgy.com
{ Private declarations }www.goodsgy.com
publicwww.goodsgy.com
{ Public declarations }www.goodsgy.com
end;www.goodsgy.com
varwww.goodsgy.com
Form1: TForm1;www.goodsgy.com
implementationwww.goodsgy.com
{$R *.DFM}www.goodsgy.com
procedure TForm1.CheckBox1Click(Sender: TObject);www.goodsgy.com
var EWX_LOGOFF,EWX_FORCE:integer;www.goodsgy.com
beginwww.goodsgy.com
EWX_LOGOFF:=0;www.goodsgy.com
EWX_FORCE:=4;www.goodsgy.com
EXITWINDOWSEX(EWX_FORCE OR EWX_LOGOFF,0);www.goodsgy.com
end;www.goodsgy.com
procedure TForm1.CheckBox2Click(Sender: TObject);www.goodsgy.com
var EWX_SHUTDOWN,EWX_FORCE:integer;www.goodsgy.com
beginwww.goodsgy.com
EWX_SHUTDOWN:=1;www.goodsgy.com
EWX_FORCE:=4;www.goodsgy.com
EXITWINDOWSEX(EWX_FORCE OR EWX_SHUTDOWN,0);www.goodsgy.com
end;www.goodsgy.com
procedure TForm1.CheckBox3Click(Sender: TObject);www.goodsgy.com
var EWX_REBOOT,EWX_FORCE:integer;www.goodsgy.com
beginwww.goodsgy.com
EWX_REBOOT:=2;www.goodsgy.com
EWX_FORCE:=4;www.goodsgy.com
EXITWINDOWSEX(EWX_FORCE OR EWX_REBOOT,0);www.goodsgy.com
end;www.goodsgy.com
procedure TForm1.wmqueryendsession(var msg: TMessage);www.goodsgy.com
beginwww.goodsgy.com
if checkbox4.checked thenwww.goodsgy.com
msg.result:=1www.goodsgy.com
elsewww.goodsgy.com
msg.result:=0;www.goodsgy.com
end;www.goodsgy.com
procedure TForm1.CheckBox5Click(Sender: TObject);www.goodsgy.com
beginwww.goodsgy.com
close;www.goodsgy.com
end;www.goodsgy.com
end.www.goodsgy.com
以上程序在WINDOWS 98、DEPHI 4.0环境中运行通过.www.goodsgy.com