在应用程序中开关WINDOWS系统
2008-04-09 04:30:23来源:互联网 阅读 ()
在实际应用时,修改了系统的某些设置,必须重新启动WINDOWS;而有些时候演示完
一个软件后,必须关闭WINDOWS;同时在演示期间,又禁止用户强行关闭WINDOWS.如何
解决上述问题,笔者编制了一个程序全面地解决了上述问题.
- 实现原理:
1.重新启动WINDOWS,关闭WINDOWS,结束当前的用户进程都是通过调用
EXITWINDOWSEX函数实现的.该函数有两个参数,前一个参数使用EWX_FORCE表示
强行关闭WINDOWS而不提醒保存其他应用程序的运行结果,后一个参数EWX_LOGOFF
表示注销当前的用户进程; EWX_SHUTDOWN表示关闭WINDOWS; EWX_REBOOT表示
重新启动WINDOWS.
2.禁止关闭WINDOWS是通过关闭WINDOWS98时,系统向各应用程序发送的一个
消息wm_queryendsession,通知各应用程序要关机了,如反馈回来的消息值为0,那么就不能
关闭WINDOWS98.
图1
- 应用实例:
- 建立含有如下控件的窗体:
控件 控件名 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;
EXITWINDOWSEX(EWX_FORCE OR EWX_LOGOFF,0);
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
var EWX_SHUTDOWN,EWX_FORCE:integer;
begin
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:远程控制篇:模拟按键
下一篇:COM/DCOM中如何传递数组
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash