社区
硬件/系统
帖子详情
求:Win7下应用程序如何阻止系统待机、休眠?(Win7下收不到WM_POWERBROADCAST的PBT_APMQUERYSUSPEND)
Ryan裤子
2010-04-02 11:54:51
如题。高分求教~ Orz
...全文
970
6
打赏
收藏
求:Win7下应用程序如何阻止系统待机、休眠?(Win7下收不到WM_POWERBROADCAST的PBT_APMQUERYSUSPEND)
如题。高分求教~ Orz
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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改变线程状态。
VC 判断
系统
是否进入睡眠模式
WM
_
POWER
BROADCAST
消息可以很据wParam参数来判定判断睡眠唤醒只需
PBT
_
APM
RESUME
SUSPEND
和
PBT
_
APM
SUSPEND
事件 LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, //
WM
_
POWER
WPARAM
MFC 响应windows
系统
睡眠/
休眠
和重启/关机/注销的消息
(这里以
win7
为例,xp、win8/win10类似) 1.睡眠/
休眠
windows
系统
默认显示睡眠,
休眠
是不显示的,如下图所示: 如果要调出
休眠
选项,可在控制面板中选择电源选项->更改计划设置->更改高级电源选项,到下图 关闭混合睡眠,设置
休眠
时间,保存后即可显示
休眠
,如下图, 所谓的混合睡眠,就是睡眠和
休眠
混合在一起,如果想感
检测计算机是否处于睡眠模式
通过监听
WM
_
POWER
BROADCAST
消息: 小示例: LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if (
WM
_
POWER
BROADCAST
== message &&
PBT
_
APM
SUSPEND
== wParam) { // Going to ...
win7
休眠
、
待机
api
win7
休眠
、
待机
api通过c++让windows进入
休眠
或者
待机
状态。 xp、
win7
下用SetSystem
Power
State函数,vista及之后的版本使用 Set
Suspend
State函数。xp、
win7
:SetSystem
Power
StateBOOL WINAPI SetSystem
Power
State( _In_ BOOL f
Suspend
, _In_ BOOL fForce
VC 禁止自动屏保,
休眠
等节电模式
Windows在启动屏幕保护程序前会向当前激活的
应用程序
发
WM
_SYSCOMMAND消息,其中wParam参数指定了即将执行的
系统
命令类型,值SC_SCREENSAVE表明这个消息为屏幕保护启动,拦截这个消息并return即可
阻止
启动屏幕保护,而值SC_MONITOR
POWER
为显示器节电自动关闭的消息,同理可return。下面为程序开启后,
阻止
系统
这两个动作的代码。 ;为示例窗口类添加
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章