最近发现笔记本不会自动休眠,经过排查发现是由于一款软件导致的,但是又不能不用,经过一段时间的摸索,终于把问题解决了。
先介绍一下具体操作原理,它就是通过Windows 电源管理命令来管控具体的某一个软件的对系统的电源请求。
具体如下:
先来看官方文档介绍Powercfg 命令行选项
选项
说明
/?、-help
显示有关命令行参数的信息。
/list、/L
列出所有电源方案。
/query、/Q
显示电源方案的内容。
/change、/X
修改当前电源方案中的设置值。
/changename
修改电源方案的名称和说明。
/duplicatescheme
复制电源方案。
/delete、/D
删除电源方案。
/deletesetting
删除电源设置。
/setactive、/S
使某个电源方案在系统上处于活动状态。
/getactivescheme
检索当前活动的电源方案。
/setacvalueindex
设置当系统由交流电源供电时与某项电源设置关联的值。
/setdcvalueindex
设置当系统由直流电源供电时与某项电源设置关联的值。
/import
从文件中导入所有电源设置。
/export
将电源方案导出到文件。
/aliases
显示所有别名及其相应的GUID。
/getsecuritydescriptor
获取与指定的电源设置、电源方案或操作相关联的安全描述符。
/setsecuritydescriptor
获取与电源设置、电源方案或操作关联的安全描述符。
/hibernate、/H
启用和禁用休眠功能。
/availablesleepstates、/A
报告系统上可用的睡眠状态。
/devicequery
返回符合指定条件的设备列表。
/deviceenableawake
启用设备将系统从睡眠状态唤醒的功能。
/devicedisablewake
禁用设备将系统从睡眠状态唤醒的功能。
/lastwake
报告有关哪个组件将系统从上次睡眠转换状态唤醒的信息。
/waketimers
枚举活动的唤醒计时器。
/requests
枚举应用程序和驱动程序电源请求。
/requestsoverride
为特定的进程、服务或驱动程序设置电源请求重写。
/energy
分析系统中常见的能效和电池寿命问题。
/batteryreport
生成电池使用情况的报告。
/sleepstudy
生成诊断系统电源转换报告。
/srumutil
转储来自系统资源使用情况监视器 (SRUM) 的能源估算数据。
/systemsleepdiagnostics
生成系统睡眠转换的诊断报告。
/systempowerreport
生成诊断系统电源转换报告。
详细的具体命令使用方法在这里就不阐述了,感兴趣的可以去参考官方文档自己测试。
大家看完以后会发现有一个 /REQUESTS 命令介绍是枚举应用程序和驱动程序的电源请求,执行这个命令,就能列出驱动程序和应用程序的电源请求。
语法是:
1powercfg /requests
于是我们就自己测试一下
12345678910111213141516171819202122232425Windows PowerShell版权所有(C) Microsoft Corporation。保留所有权利。安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindowsPS C:\Users\rkdawn> powercfg /requestsDISPLAY:[PROCESS] \Device\HarddiskVolume4\电脑软件\抖音直播监控录制工具\抖音直播监控录制工具.exeSYSTEM:[PROCESS] \Device\HarddiskVolume4\电脑软件\抖音直播监控录制工具\抖音直播监控录制工具.exeAWAYMODE:无。执行:无。PERFBOOST:无。ACTIVELOCKSCREEN:无。PS C:\Users\rkdawn>
通过执行枚举电源请求命令我们能发现,有一个软件请求了 DISPLAY和SYSTEM两个电源请求,根据字面意思可以知道这个软件阻止电脑自动息屏以及电脑自动睡眠。然后在官方文档中发现/REQUESTSOVERRIDE这个命令的介绍是为特定的进程、服务或驱动程序设置电源请求重写。 如果未指定任何参数,此命令将显示当前的电源请求重写列表。也就是说我们只要使用/REQUESTSOVERRIDE忽略指定的软件、驱动、服务的电源请求,就可以实现阻止软件、驱动、服务导致的显示器不自动息屏,以及系统不自动休眠。
语法是:
1powercfg /requestsoverride [caller_type name request]
12345678910111213141516171819202122powercfg /REQUESTSOVERRIDE -? POWERCFG /REQUESTSOVERRIDE [
通过帮助程序能看到“忽略电源请求”这条命令的使用方式
1POWERCFG /REQUESTSOVERRIDE [<应用程序类型> <程序名称> <电源请求类型>]
最终命令
1POWERCFG /REQUESTSOVERRIDE PROCESS 抖音直播监控录制工具.exe DISPLAY SYSTEM
接下来执行命令后测试,然后无参调用REQUESTSOVERRIDE来查看我们的设置是否成功
1234567PS C:\Users\rkdawn> POWERCFG /REQUESTSOVERRIDE[SERVICE][PROCESS]抖音直播监控录制工具.exe DISPLAY SYSTEM[DRIVER]
但是这时候会发现一个问题,经过我测试,貌似每次更新文件以后都要重新添加,例如改变了版本号,那该如何取消呢,经过我搜索后发现,有大佬给出了答案。
那就是添加的这个是可以在注册表删除的,老规矩,win+R打开CMD输入regedit进入注册表
它的目录是
1计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerRequestOverride\Process
结语:感谢大佬提供的教程和思路。
PS:参考文章:Windows系统禁止软件、驱动阻止系统息屏、睡眠、一劳永逸解决WIN10所有睡眠问题