VC 捕获Windows关机事件

环境VC6.0 MFC

某些时候我们需要在系统关机的时候进行相应的处理。

在某个窗口添加窗口过程函数

LRESULT CMyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
if ( message == WM_ENDSESSION ) //Windows关机消息
{

//相应的处理代码

}
return CNewDialog::WindowProc(message, wParam, lParam);
}

 

 

http://www.cnblogs.com/pbreak/archive/2010/10/20/1856492.html

 

//下面是对话框工程 响应消息中自动添加的过程函数

LRESULT CProjectorControllerDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
 // TODO: 在此添加专用代码和/或调用基类
 switch (message)
 {
  case WM_QUERYENDSESSION:
   /*如果要注销或关闭系统返回 1 否则返回 0
            不管WM_QUERYENDSESSION最后的结果是可以顺利结束或不能顺利结束,Windows会再送
            一个WM_ENDSESSION的信息给所有的Process,而wParam的内容便是指出是否可以顺利结束*/
   //wchar_t tmp[10];
   //wsprintf(tmp,L"wParam = 0x%x  lParam = 0x%x",wParam,lParam);   
   if(lParam == 0){
    ::MessageBox(0,L"收到关机或重启消息",L"关机",MB_OK);
   }
   else//lParam == 0x80000000
    ::MessageBox(0,L"收到注销消息………………………………",L"0x80000000",MB_OK);
    
   return 0; //无论返回什么值,都不能实现阻止关机的功能,但SDK方式可以阻止关机,WHY?
  case WM_ENDSESSION:
   return 0; //无论返回什么值,都不能实现阻止关机的功能
 }

 return CDialog::DefWindowProc(message, wParam, lParam);
}

 
VC SDK方式截获windows关机消息,拦截消息后可控制是否继续关机-

 http://www.verysource.com/20070731getshutdown_-download-108496.html

 

VC6 MFC方式截获windows关机消息,但拦截消息后不能控制是否继续关机 -
http://www.verysource.com/20070801getshutdown_-download-119005.html

 

http://bbs.csdn.net/topics/70331603

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值