今日头条

最新评论

在应用程序中开关WINDOWS系统

发布日期:2011-06-20  2011-06-20日文章 2011年精华 2011年06月精华
在应用程序中开关WINDOWS系统
  在实际应用时,修改了系统的某些设置,必须重新启动WINDOWS;而有些时候演示完一个软件后,必须关闭WINDOWS;同时在演示期间,又禁止用户强行关闭WINDOWS.如何解决上述问题,笔者编制了一个程序全面地解决了上述问题.





实现原理:

  1.重新启动WINDOWS,关闭WINDOWS,结束当前的用户进程都是通过调用EXITWINDOW***函数实现的.该函数有两个参数,前一个参数使用EWX_FORCE表示强行关闭WINDOWS而不提醒保存其他应用程序的运行结果,后一个参数EWX_LOGOFF表示注销当前的用户进程; EWX_SHUTDOWN表示关闭WINDOWS; EWX_REBOOT表示重新启动WINDOWS.



  2.禁止关闭WINDOWS是通过关闭WINDOWS98时,系统向各应用程序发送的一个消息wm_queryendsession,通知各应用程序要关机了,如反馈回来的消息值为0,那么就不能关闭WINDOWS98.



应用实例:



建立含有如下控件的窗体:

控件 控件名 CAPTION



窗体 FORM1 重新启动WINDOWS系统



复选框 CHECKBOX1 强行结束当前的用户进程



复选框 CHECKBOX2 强行关机



复选框 CHECKBOX3 强行重新启动机器



复选框 CHECKBOX4 禁止关机



复选框 CHECKBOX5 退出





2.程序清单:



unit CLSW;



interface



uses



Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,



StdCtrls;



type



TForm1 = class(TForm)



CheckBox1: TCheckBox;



CheckBox2: TCheckBox;



CheckBox3: TCheckBox;



CheckBox4: TCheckBox;



CheckBox5: TCheckBox;



procedure CheckBox1Click(Sender: TObject);



procedure CheckBox2Click(Sender: TObject);



procedure CheckBox3Click(Sender: TObject);



procedure CheckBox5Click(Sender: TObject);





private



procedure wmqueryendsession(var msg:TMessage);



message wm_queryendsession;



{ Private declarations }



public



{ Public declarations }



end;



var



Form1: TForm1;



implementation



{$R *.DFM}





procedure TForm1.CheckBox1Click(Sender: TObject);



var EWX_LOGOFF,EWX_FORCE:integer;



begin



EWX_LOGOFF:=0;



EWX_FORCE:=4;



EXITWINDOW***(EWX_FORCE OR EWX_LOGOFF,0);



end;





procedure TForm1.CheckBox2Click(Sender: TObject);



var EWX_SHUTDOWN,EWX_FORCE:integer;



begin



EWX_SHUTDOWN:=1;



EWX_FORCE:=4;



EXITWINDOW***(EWX_FORCE OR EWX_SHUTDOWN,0);



end;





procedure TForm1.CheckBox3Click(Sender: TObject);



var EWX_REBOOT,EWX_FORCE:integer;



begin



EWX_REBOOT:=2;



EWX_FORCE:=4;



EXITWINDOW***(EWX_FORCE OR EWX_REBOOT,0);



end;





procedure TForm1.wmqueryendsession(var msg: TMessage);



begin



if checkbox4.checked then



msg.result:=1



else



msg.result:=0;



end;





procedure TForm1.CheckBox5Click(Sender: TObject);



begin



close;



end;



end.



以上程序在WINDOWS 98、DEPHI 4.0环境中运行通过.

来源:
http://www.programfan.com/article/1674.html

<<上一页    返回类目    下一页>>

最新查看

最新评分

最近文章

设为今日头条
推荐到首页显示
文章操作>>
编辑