VC 禁止自动屏保,休眠等节电模式

Windows在启动屏幕保护程序前会向当前激活的应用程序发WM_SYSCOMMAND消息,其中wParam参数指定了即将执行的系统命令类型,值SC_SCREENSAVE表明这个消息为屏幕保护启动,拦截这个消息并return即可阻止启动屏幕保护,而值SC_MONITORPOWER为显示器节电自动关闭的消息,同理可return。下面为程序开启后,阻止系统这两个动作的代码。

;为示例窗口类添加消息响应函数WM_SYSCOMMAND
void CSample::OnSysCommand(UINT nID, LPARAM lParam) 
{
      if (nID == SC_SCREENSAVE || nID == SC_MONITORPOWER) 
      {
            return;
      }
      CSkinDialog::OnSysCommand(nID, lParam);
}

      操作系统发送给窗体的消息送给WindowProc虚函数所截获,其中参数message为WM_POWERBROADCAST时,表明系统开始电源处理方面消息通知。第二个参数PBT_APMQUERYSUSPEND则是待机,休眠的请求,过滤掉这个消息,就可以阻止系统进入待机或休眠等模式。下面是示例代码:

;为示例窗口类添加虚函数WindowProc

LRESULT CSample::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)

{

       // TODO: Add your specialized code here and/or call the base class

       if (message == WM_POWERBROADCAST && wParam == PBT_APMQUERYSUSPEND)

       {

             return BROADCAST_QUERY_DENY;

       }

       return CSkinDialog::WindowProc(message, wParam, lParam);

}

   开发平台:vc6.0 sp6企业版 
   测试环境:winxp sp2          


转自:http://hi.baidu.com/bitroc/item/1c2861c48c33623b44941687

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值