Windows系统禁止软件、驱动阻止系统息屏、睡眠。

        最近遇到了一件糟心的事,电脑屏幕不会自动熄灭,电脑显示器一直亮感觉很不好。最后经过我研究发现是一款软件阻止系统息屏导致的。但是由于工作原因这个软件必开,所以没办法只能寻找办法让电脑正常息屏。

        所谓功夫不负有心人,还真让我找到了,操作也很简单,下面我就介绍一下具体操作步骤以及原理。

Windows 电源管理命令

powercfg -?

POWERCFG /命令 [参数]

描述:
  使用户可以控制本地系统上的电源设置。

  有关命令和选项的详细信息,请运行 "POWERCFG /? <COMMAND>"

命令列表:
  /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      返回符合指定条件的设备列表。

  /DEVICEENABLEWAKE  使设备从睡眠状态唤醒系统。

  /DEVICEDISABLEWAKE 禁止设备从任何睡眠
                     状态唤醒系统。

  /LASTWAKE          报告有关从上次睡眠转换中
                     唤醒系统的信息。

  /WAKETIMERS        枚举活动的唤醒计时器。

  /REQUESTS          枚举应用程序和驱动程序的电源请求。

  /REQUESTSOVERRIDE  为特定进程、
                     服务或驱动程序设置电源请求替代。

  /ENERGY            分析系统中常见的能量效率和
                     电池使用时间问题。

  /BATTERYREPORT     生成电池使用情况的报告。

  /SLEEPSTUDY        生成系统电源转换的诊断报告。

  /SRUMUTIL          从系统资源使用状况监视器(SRUM)转储能量
                     估算数据。

  /SYSTEMSLEEPDIAGNOSTICS
                     系统睡眠诊断报告已弃用且
                     替换为系统电源报告。请使用命令
                     改用 "powercfg /systempowerreport"。

  /SYSTEMPOWERREPORT 生成系统电源转换的诊断报告。

  /POWERTHROTTLING 为应用程序控制电源节流。

  /PROVISIONINGXML, /PXML    生成包含电源设置覆盖项的 XML 文件。

        通过Windows的电源管理命令的帮助手册,我发现有一个 /REQUESTS 命令介绍是枚举应用程序和驱动程序的电源请求。咱就想吗,软件一直唤醒屏幕应该与这个有关系,执行这个命令,就能列出驱动程序和应用程序的电源请求

PS C:\Users\muxin> powercfg /requests
DISPLAY:
[PROCESS] \Device\HarddiskVolume6\红瓦科技\协同大师V8.0.2\HW.Collaborate.ClientApp.exe

SYSTEM:
[PROCESS] \Device\HarddiskVolume6\红瓦科技\协同大师V8.0.2\HW.Collaborate.ClientApp.exe

AWAYMODE:
无。

执行:
无。

PERFBOOST:
无。

ACTIVELOCKSCREEN:
无。

        通过执行枚举电源请求命令我们能发现,有一个软件请求了 DISPLAY和SYSTEM两个电源请求,根据字面意思可以知道这个软件阻止电脑自动息屏以及电脑自动睡眠。

        然后在第一条命令中我发现“/REQUESTSOVERRIDE”命令的介绍是“为特定进程、服务或驱动程序设置电源请求替代。”,这个命令介绍就很模棱两可,什么请求替代?替代什么?通过字面意思很难理解这个命令的具体行为以及功能。但是实践出真理,经过我的实验发现所谓的“电源请求替代”实际上的意义是“忽略电源请求”。也就是说,我们只要使用“/REQUESTSOVERRIDE”忽略指定的软件、驱动、服务的电源请求,就可以实现阻止软件、驱动、服务导致的显示器不自动息屏,以及系统不自动休眠。

        我们先看看这条命令的详细介绍

powercfg /REQUESTSOVERRIDE -?

POWERCFG /REQUESTSOVERRIDE [<CALLER_TYPE> <NAME> <REQUEST>]

描述:
  为特定进程、服务或驱动程序设置电源请求替代。
  如果未指定任何参数,则该命令显示
  电源请求替代的当前列表。

参数列表:
  <CALLER_TYPE>    指定下列调用方类型之一: PROCESS、
                   SERVICE、DRIVER。可以通过调用
                   "POWERCFG /REQUESTS" 命令获取。

  <NAME>           指定调用方名称。这是通过
                   调用 "POWERCFG /REQUESTS" 命令返回的名称。

  <REQUEST>        指定下列一个或多个电源请求类型:
                   DISPLAY、SYSTEM、 AWAYMODE。

示例:
  POWERCFG /REQUESTSOVERRIDE PROCESS wmplayer.exe DISPLAY SYSTEM

        通过帮助程序能看到“忽略电源请求”这条命令的使用方式

 POWERCFG  /REQUESTSOVERRIDE [<应用程序类型> <程序名称> <电源请求类型>]

最终命令

1.禁止  HW.Collaborate.ClientApp.exe 的 阻止自动息屏(DISPLAY)请求和阻止系统睡眠(SYSTEM)请求。

PS C:\Users\muxin> POWERCFG /REQUESTSOVERRIDE PROCESS HW.Collaborate.ClientApp.exe DISPLAY SYSTEM


# 执行上面的命令后 然后无参调用 REQUESTSOVERRIDE 来查看我们的设置是否成功

PS C:\Users\muxin> POWERCFG /REQUESTSOVERRIDE
[SERVICE]

[PROCESS]
HW.Collaborate.ClientApp.exe DISPLAY SYSTEM

[DRIVER]

2.只阻止 HW.Collaborate.ClientApp.exe 的 阻止自动息屏(DISPLAY)请求。

PS C:\Users\muxin> POWERCFG /REQUESTSOVERRIDE PROCESS HW.Collaborate.ClientApp.exe DISPLAY


# 执行上面的命令后 然后无参调用 REQUESTSOVERRIDE 来查看我们的设置是否成功

PS C:\Users\muxin> POWERCFG /REQUESTSOVERRIDE
[SERVICE]

[PROCESS]
HW.Collaborate.ClientApp.exe DISPLAY

[DRIVER]

3.只阻止 HW.Collaborate.ClientApp.exe 的 阻止系统睡眠(SYSTEM)请求。

PS C:\Users\muxin> POWERCFG /REQUESTSOVERRIDE PROCESS HW.Collaborate.ClientApp.exe SYSTEM


# 执行上面的命令后 然后无参调用 REQUESTSOVERRIDE 来查看我们的设置是否成功

PS C:\Users\muxin> POWERCFG /REQUESTSOVERRIDE
[SERVICE]

[PROCESS]
HW.Collaborate.ClientApp.exe SYSTEM

[DRIVER]

总结:

        通过 POWERCFG /REQUESTSOVERRIDE 命令忽略响应的请求后重启电脑我发现电脑终于能正常的息屏了,对于这种垃圾软件我真是无语至极,它们就不能在软件设置里弄个阻止系统息屏、阻止系统睡眠的开关吗?就不能让用户手动设置是否让你这个垃圾来做这件事吗?可以默认阻止但是要给我们用户选择的权力!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值