![4a472f557ada8ac2520f685f92499d7c.png](https://i-blog.csdnimg.cn/blog_migrate/7d7b29f026cb7ef60425115d17e1f5c2.jpeg)
1.初级阶段,解决因硬件的唤醒事件
powercfg -lastwake
查看上次唤醒电脑的设备
哪些硬件能唤醒电脑?
powercfg /devicequery wake_armed
![a53e4a9b1d48e3734fff1889a2c11a50.png](https://i-blog.csdnimg.cn/blog_migrate/c06d80805372a668a1045f30409aafa4.png)
列出现在可以唤醒电脑的所有硬件设备,可以看到现在键盘能唤醒
powercfg /devicequery wake_programmable
![a9ad84087f89adf687ec5e9bf7b91ad5.png](https://i-blog.csdnimg.cn/blog_migrate/643cbc60f607cae0e9868fe2463a1a0b.jpeg)
列出全部有能力唤醒电脑的硬件设备,这个范围更大,可以看到也包含了键盘。有能力唤醒,但现在可能不被允许唤醒,你可以允许或禁止这几个设备唤醒电脑,方法如下
如何允许和禁止硬件唤醒电脑?
powercfg /deviceenableawake "HID-compliant mouse (003)"
允许鼠标唤醒电脑
powercfg /devicedisablewake "HID-compliant mouse (003)"
禁止鼠标唤醒,让移动、点击鼠标不再能唤醒电脑
这两条允许和禁止命令与"右键开始菜单-设备管理器-鼠标-电源管理-取消勾选允许鼠标唤醒电脑"的效果是一样的,有的usb无线鼠标在拔插usb接收器后需要再次取消允许唤醒,并且更换usb插口似乎会被识别成不同鼠标,也需要重新设置。网卡同理。有的笔记本上禁止键盘唤醒后依然可以按任意键唤醒,也许需要进入bios设置。
![5eb1dc12623f5ff93604c98724788735.png](https://i-blog.csdnimg.cn/blog_migrate/c5d5d990e3b1b0537675123df8eb5595.jpeg)
我的电脑支持睡眠和休眠吗?
powercfg -a
![405aba3f5de84027857dacf95734743d.png](https://i-blog.csdnimg.cn/blog_migrate/c79feacd52b7f9d221bc4ed1a38aaf6d.jpeg)
查看电脑可用的睡眠类型,以及说明为什么一些睡眠类型不可用。S1是轻度睡眠,S2是更深,S3是最深度睡眠
S0 正常。
S1 CPU停止工作。唤醒时间:0秒。
S2 CPU关闭。唤醒时间:0.1秒。
S3 除了内存外的部件都停止工作。唤醒时间:0.5秒。
S4 内存信息写入硬盘,所有部件停止工作。唤醒时间:30秒。(休眠状态)
S5 关闭。
powercfg /devicequery wake_from_S3_supported
列出所有支持从最深睡眠状态唤醒电脑的设备
powercfg /devicequery wake_from_any
列出所有支持从任何睡眠状态唤醒电脑的设备
powercfg /devicequery S3_supported
列出支持最深度睡眠的设备,该设备不一定能唤醒电脑
powercfg /devicequery S4_supported
列出支持休眠的设备
powercfg /devicequery all_devices
列出所有设备(较长)
2.中级阶段,晚上莫名自启,解决因自动更新、计划任务的唤醒
电脑有没有计划任务?
powercfg -waketimers
![b988db984f105ef084bcb73fca5ebcb3.png](https://i-blog.csdnimg.cn/blog_migrate/c68c2c2f3c0b8070faf57510a7e5e78a.jpeg)
下次可能会被什么计划任务唤醒,比如自动更新,也可以在计划任务里查看
Windows徽标键+S,搜索打开计划任务,进入相关目录即可
![89474a619c84840fb40b693fdeffc443.png](https://i-blog.csdnimg.cn/blog_migrate/9d3206c1f63cce63691f79d65cab6208.jpeg)
如何禁止计划任务和定时器唤醒?
右键任务栏右下角电源图标-电源选项-更改计划设置-更改高级电源设置-睡眠-允许使用唤醒定时器,使用电池和接通电源都可以根据需要设置为禁用
![1c5a1375effda287897d4fd5b6313fd3.png](https://i-blog.csdnimg.cn/blog_migrate/f81b033d9be0aab9669599acee2d8016.jpeg)
如果已经禁用了定时器唤醒,就不会被上述计划任务唤醒
3.高级阶段,想睡睡不了,解决软件、驱动阻止系统睡眠
点击睡眠后屏幕关闭了,喇叭也不响了,鼠标键盘灯亮,cpu风扇也在转动,动一动鼠标或键盘就会亮屏?
首先确认迅雷9的离开模式是否关闭,若未安装迅雷,将注册表的AwayModeEnable设置为0,确保离开模式处于关闭状态
注册表位置:
计算机HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPower
![8c940cb409e78525cb2d1cc7a9ae6861.png](https://i-blog.csdnimg.cn/blog_migrate/87564825cd4fd68d9d739ad7766600f6.jpeg)
关键:powercfg /requests
![288e595d1806a2930d0b354990301d62.png](https://i-blog.csdnimg.cn/blog_migrate/ca1f149d13073ff376467467002b2864.png)
查看哪些进程、服务、驱动有电源需求。列表中的程序、驱动会阻止计算机进入睡眠。需要重写(删除)电源需求,方法如下。
格式:powercfg /requestsoverride 请求者类型 请求者名称 电源需求类型(可写1到3个需求类型)
举例:powercfg /requestsoverride PROCESS "chrome.exe" system
此命令会忽略掉chrome阻止睡眠的请求,名称加引号更保险。
如果你遇到下面这种带括号很长一串的情况
SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIOFUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C84DA&REV_10004&306c1263&0&0001)
音频流当前正在使用中。
对应命令是:
powercfg /requestsoverride DRIVER "HDAUDIOFUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C84DA&REV_10004&306c1263&0&0001" SYSTEM
或:powercfg -REQUESTSOVERRIDE DRIVER "Realtek High Definition Audio" SYSTEM
如果还是不能睡眠,那就需要更新音频驱动
恢复电源需求,让其继续阻止电脑进入睡眠:powercfg /requestsoverride PROCESS chrome.exe
如何填写请求者类型?
请求者类型3种,SERVICE PROCESS DRIVER (服务、进程、驱动),出现在powercfg /requests运行后的SYSTEM、Display、Awaymode等下方,显示为[Driver]、[PROCESS]、[SERVICE]。
如何填写电源需求类型?
电源需求类型4种,Display System Awaymode EXECUTION(显示、系统、离开模式、执行),一般3个请求者类型(SERVICE PROCESS DRIVER)都是出现在powercfg /requests运行后的SYSTEM下方,Display和Awaymode下方很少见。所以电源需求类型通常只填system1个,填3个(system display awaymode)也可以,填三个感觉似乎重写(删除)得更全面,但其实没意义,运行powercfg /requests之后,观察Display、System、Awaymode、EXECUTION哪个下面有就写哪个,若同时出现在Display和System下面就写Display和System。
- Display电源需求:即使长时间没有活动,也会请求让显示屏保持打开的状态,如果显示器已经关闭,则“Display电源需求”会打开显示器,不会自启动屏保,启动的屏保会关闭,已锁定系统的继续锁定,没锁定的不锁定。
- System电源需求:请求电脑一段时间不活动后仍然保持运行,而不是进入睡眠状态。很多程序和驱动都是采用的system电源需求。
- Awaymode电源需求:会让系统进入离开模式而不是睡眠模式。在离开模式下,系统会响应用户的操作,并且继续运行,但会关闭音频和视频来给人一种睡眠的感觉。迅雷开启离开模式就是这个效果(但是迅雷是直接开启系统的离开模式,所以不会显示在powercfg /requests列表里)。
注:如果powercfg /requests列出的有Printer(打印机),一般是有打印队列,也许暂停了,等待打印完成或者将打印任务移出队列即可。也可以输入powercfg -requestsoverride service spoolsv.exe SYSTEM来删除打印机的电源需求,但这样也许打印机在工作时电脑就进入了睡眠,从而中断打印。
powercfg /requestsoverride
![a3551fdc7f32675fc047986a8ff128d5.png](https://i-blog.csdnimg.cn/blog_migrate/8e0a0a4b9e1d4b49cf65f631e6610261.jpeg)
不加后面的参数是直接查看刚刚已经重写(删除)过电源需求的进程、服务、驱动
也可在注册表里查看:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPowerPowerRequestOverride
![5056332887f68b96daf3ee035822bbf4.png](https://i-blog.csdnimg.cn/blog_migrate/a33929d552193cd31f4ef81fce070db8.jpeg)
评论里提到电脑会在两分钟内黑屏睡眠,这是微软的隐藏设置
在无人参与空闲超时后进入睡眠状态:
微软希望如果系统因远程网络唤醒(Wake on Lan)或触发了定时器唤醒,系统就会在120秒内睡眠,而不是自定义的时间后睡眠。
官方说明:
https://docs.microsoft.com/zh-cn/windows-hardware/customize/power-settings/sleep-settings-sleep-unattended-idle-timeout?redirectedfrom=MSDN
使用Powercfg删除此隐藏设置:
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 +ATTRIB_HIDE
使用Powercfg添加此隐藏设置:
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE
修改无人参与空闲超时后进入睡眠的时间为36000秒,默认120秒:
使用电池:
powercfg /SETDCVALUEINDEX SCHEME_CURRENT 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 36000
插电源:
powercfg /SETACVALUEINDEX SCHEME_CURRENT 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 36000
powercfg /batteryreport
会生成一份笔记本电池使用报告,估计了电池一次性可用时间和寿命
位置在 C:WINDOWSsystem32battery-report.html
参考链接:
微软官方文档:Powercfg命令参数 Powercfg command-line options
三种电源请求(Display System Awaymode)的简要说明:PowerSetRequest function Parameters
三种电源请求(Display System Awaymode)的区别详细说明: Power Request Types: What's the difference between Display, System, Awaymode. (powercfg)
发现一款叫Don't Sleep的程序,还没使用过,有兴趣可以试试,下载地址:https://www.softwareok.com/?Download=DontSleep
切换成中文,不过中文把睡眠错误翻译成了休眠:
![a6953586427a70b52b61ab4411deffde.png](https://i-blog.csdnimg.cn/blog_migrate/d0c468aad707bd9e8015172d76b4fed2.jpeg)
![6dac7ba4aa94ab43ae3c6d644f72bcb2.png](https://i-blog.csdnimg.cn/blog_migrate/492ddac1a5e881c50b35c6e950d6292a.jpeg)