快速业务通道

用BCB实现禁止用户关闭Window系统

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30

在软件的安装或演示操作等过程中,如果关闭Windows系统会产生严重的后果,就必须禁止用户关闭Windows,直到完成相应的操作,那么如何才能禁止用户关闭Windows呢?其实很简单,当用户关闭Windows时,系统会发送给各应用程序一个消息WM_QUERYENDSESSION,告诉各应用程序要关机了,如果反馈回来的消息值为0,那么Windows就不能关机。因此,截获WM_QUERYENDSESSION,并反馈回0,大功就告成了,下面是一个例子。

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

在.hpp中的Private段内加入以下代码:

//截获 WM_QUERYENDSESSION 消息。

BEGIN_MESSAGE_MAP
   MESSAGE_HANDLER(WM_QUERYENDSESSION,TMessage,OnWMQueryEndSession)
END_MESSAGE_MAP(TForm);
void __fastcall TForm1::OnWMQueryEndSession(TMessage &Message);

在.cpp中添加以下代码:

void __fastcall TForm1::OnWMQueryEndSession(TMessage &Message)
{
  //如果CheckBox被选中,允许关机。
  if(CheckBox1->Checked)
   Message.Result=1;
  else
   Message.Result=0;
}

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

----程序调试环境:C++ Builder 6.0 + sp3

Windows 2000 ADV Server + sp3

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号