Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 用BCB实现禁止用户关闭Window系统
【标  题】:用BCB实现禁止用户关闭Window系统
【关键字】:C,系统,in,Win,关闭,Window,BCB,BC,do,Wi,BCB,Window
【来  源】:网络

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

Your Ad Here 在软件的安装或演示操作等过程中,如果关闭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

用C++Builder检测Windows的启动模式:【上一篇】
判别剪贴板上所有可用的格式:【下一篇】
【相关文章】
  • 用C++Builder检测Windows的启动模式
  • 用C++ Builder创建上下文菜单扩展处理器
  • Windows中控制台程序的全屏模式开关
  • 获取WinNT/Win2k当前用户名和密码
  • 在CB程序中控制Windows关机
  • 用CB控制Windows注册表
  • 用C++ Builder编写Tray程序
  • COM编程入门2
  • 如何改变CppWebBrowser的Html内容
  • 如何将CB创建的Activex设定为脚本安全
  • 【随机文章】
  • OpenCms中动态导航的开发
  • Macromedia Studio 8 中文版正式发布
  • gcc使用小结
  • debian 基础
  • shell应用两例ftp和mount
  • 程序员网上考试系统 v1.1 (三层C/S)
  • oracle10g for linux 安装
  • Linux操作系统的内核编译内幕详解
  • 無效代碼求正解中7/21
  • MPLS VPN实现远程教育
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.