如何使用 .bat 文件让计算机在意外唤醒时再次进入睡眠状态?

如何使用 .bat 文件让计算机在意外唤醒时再次进入睡眠状态?

https://c1.staticflickr.com/1/623/22056481124_6cb41164ee_b.jpg
唤醒历史计数 - 1
唤醒历史 [0]
唤醒源计数 - 1
唤醒源 [0]

https://c1.staticflickr.com/1/763/21680581753_ce45aa17a1_b.jpg
唤醒历史计数 - 1
唤醒历史 [0]
唤醒源计数 - 0
(未显示唤醒源)

如果我按下某个键将计算机从睡眠模式唤醒,则结果将如屏幕截图 1 所示。
如果计算机意外唤醒,则结果将如屏幕截图 2 所示。
我尝试了各种方法,但实际上没有办法阻止计算机意外唤醒。
直到上个月我将 Windows 7 升级到 Windows 10 后才出现此问题,所以我认为问题出在 Windows 10 而不是我的计算机上,因为我没有对计算机进行任何硬件更改。
在事件查看器中,意外唤醒时发生的事件与正常唤醒(即我手动唤醒)时发生的事件完全相同
在电源设置的条件下,已禁用唤醒计算机以运行任务。
通过任务计划程序,无论计算机是意外还是正常唤醒,都可以自动运行 .bat 文件。
在文件中可以使用哪些命令,以便计算机在意外唤醒时自动再次进入睡眠状态?

答案1

尝试这个:

powercfg -lastwake | findstr /I /C:"Type:"
if %errorlevel% == 0 (
    echo woken up by something
) else (
    echo woken up unexpectedly
)

简而言之,它只是Type:在输出中查找powercfg -lastwake,如果不存在,则假定机器意外唤醒。

如果您确实想让机器重新进入睡眠状态,请将第二行替换echo为以下内容:

powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on

请记住,您的计算机可能会陷入一个循环:唤醒、运行此脚本、重新进入睡眠状态、唤醒、运行此脚本、重新进入睡眠状态等等。

相关内容