用BCB实现克制用户封锁Window系统
当前位置:以往代写 > C/C++ 教程 >用BCB实现克制用户封锁Window系统
2019-06-13

用BCB实现克制用户封锁Window系统

用BCB实现克制用户封锁Window系统

在软件的安装或演示操纵等进程中,假如封锁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

    关键字:

在线提交作业