首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

应用程序未激活怎样截取屏保、待机消息?解决办法

2011-12-30 
应用程序未激活怎样截取屏保、待机消息??Windows在启动屏幕保护程序前会向当前激活的应用程序发WM_SYSCOMMA

应用程序未激活怎样截取屏保、待机消息??
Windows在启动屏幕保护程序前会向当前激活的应用程序发WM_SYSCOMMAND消息。
当是如果当前应用程序没有激活,能用什么办法截获WM_SYSCOMMAND的消息?

void CGgDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
  if((nID == SC_SCREENSAVE || nID == SC_MONITORPOWER)) 
  { return; }
  else CDialog::OnSysCommand(nID, lParam);
 }

这段程序只有在该窗口激活的状态下才能截取SC_SCREENSAVE和SC_MONITORPOWER消息,进而阻止系统进入屏保和待机。
而我希望在该应用程序(已经运行开来的了)没有激活的状态下,截取系统的屏保和待机消息~
比方说我把应用程序最小化了,还能阻止屏保和待机……
希望大家帮忙指点,能提供详细的代码更好。谢谢

[解决办法]
HOOK
[解决办法]
::SetWindowsHookEx(WH_GETMESSAGE,...);
[解决办法]
http://topic.csdn.net/u/20100129/14/d50b04f9-856c-4493-998b-8a6555ecf8d5.html
[解决办法]
这个文章不是已经有人问过了吗。你看下以前的文章
[解决办法]
只是阻止的话可以用 SetThreadExecutionState

热点排行