有时我会让我的电脑(Windows 10 下的联想笔记本电脑)做一些需要一段时间的事情(例如科学计算)。当它这样做时,我希望能够合上盖子而不让它进入睡眠状态。
问题是,大多数情况下,我还想保留它的默认行为,即当我关闭它时它就会进入睡眠状态。
我希望它的工作方式是,如果我什么都不做,然后合上盖子,它就会进入睡眠状态。但是,如果我按下一些任意组合键,它会忽略我下次合上盖子的操作,并保持唤醒状态,直到我再次打开它。
理想情况下,无论是否插入电源,此行为都应相同。我知道我可以在“电源管理”下更改它,但我经常这样做,并且最好有一个快捷方式。
有人能想到办法做到这一点,或者有什么技巧可以模仿这种行为吗?
提前致谢。
答案1
为了防止计算机进入睡眠状态,您可以使用以下程序 咖啡因 或者 失眠。
或者,您可以禁用合上盖子时的睡眠功能,稍后再重新启用。如果手动操作太麻烦,您可以通过命令执行此操作,该命令可以放在存储在桌面上的批处理文件中。
请参阅切换脚本,了解如何禁用和恢复盖子关闭操作,回到之前的模式, 这个答案 (但其他答案也可能相关)。
以下是该脚本的稍微修改后的版本:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:(" %%i in ('powercfg /GETACTIVESCHEME') do set ACTIVESCHEME=%%i
for /f "tokens=2 delims=:(" %%i in ('powercfg -q %ACTIVESCHEME% SUB_BUTTONS LIDACTION ^| findstr "[0-9a-z]*-[0-9a-z]*-[0-9a-z]*-[0-9a-z]*-[0-9a-z]*"') do set FULLPATH=!FULLPATH! %%i
for /f "tokens=2 delims=:(" %%i in ('powercfg /q %FULLPATH% ^| findstr "[0-9]x[0-9]*"') do (
set CURRENTSETTINGAC=!CURRENTSETTINGDC!
set CURRENTSETTINGDC=%%i
)
set CURRENTSETTINGAC=%CURRENTSETTINGAC:~-1%
set CURRENTSETTINGDC=%CURRENTSETTINGDC:~-1%
powercfg -SETACVALUEINDEX %FULLPATH% 0
powercfg -SETDCVALUEINDEX %FULLPATH% 0
powercfg /s %ACTIVESCHEME%
pause Waiting to re-enable sleep on lid close ...
powercfg -SETACVALUEINDEX %FULLPATH% %CURRENTSETTINGAC%
powercfg -SETDCVALUEINDEX %FULLPATH% %CURRENTSETTINGDC%
powercfg /s %ACTIVESCHEME%