求:Win7下应用程序如何阻止系统待机、休眠?(Win7下收不到WM_POWERBROADCAST的PBT_APMQUERYSUSPEND)

Ryan裤子 2010-04-02 11:54:51
如题。高分求教~ Orz
...全文
970 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
andylei_ok 2011-05-04
  • 打赏
  • 举报
回复
k;k;
Ryan裤子 2010-05-11
  • 打赏
  • 举报
回复
应该是只能从驱动层做了。拜谢~ 结贴~
尹成 2010-04-22
  • 打赏
  • 举报
回复
[b]WM_POWERBROADCAST消息不会在UAC控制下的程序中广播,要收到消息可以关闭UAC或者mainfest提权或者用SetThreadExecutionState改变线程状态。

Win7下应用程序可能做不到,驱动层可以做到[/b]
wangk 2010-04-02
  • 打赏
  • 举报
回复
注意:WM_POWERBROADCAST广播的对象是顶层窗口。另外作为测试的时候,你可以先关闭UCA,再试试。
Ryan裤子 2010-04-02
  • 打赏
  • 举报
回复
Vista和Vin7不是只能接收,而是根本没有这个窗口消息,直接就进入了休眠。
执行SetThreadExecutionState也收不到消息。
wangk 2010-04-02
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/aa373247%28VS.85%29.aspx

请仔细查看MSDN的说法,大概翻译过来的意思是:
Windows Server 2003, Windows XP, and Windows 2000可以返回BROADCAST_QUERY_DENY拒绝待机、休眠。
但是Vista和Win7只能接收。

WM_POWERBROADCAST消息不会在UAC控制下的程序中广播,要收到消息可以关闭UAC或者mainfest提权或者用SetThreadExecutionState改变线程状态。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧