Windows 系统自动睡眠、自动唤醒(开关休眠/Hibernate功能)
- 参考:
思路
使用 计划任务 ,配置睡眠命令和唤醒,来实现自动睡眠和自动唤醒。
结果
没有解决 这个问题,卡在自动睡眠上。只有“开始”菜单的自动睡眠,可以自动唤醒。
试过两种方法都不行。
PsShutdown 工具
这个工具无所谓 powercfg -h on/off 打开或者关闭系统的 休眠 功能。
1 2 | 管理员权限执行 cmd psshutdown.exe -d -t 0 -accepteula |
失败原因: 这个命令执行后,电脑进入睡眠状态,但是呆一会电脑就唤醒了,不知道为什么。
powrprof.dll,SetSuspendState
这个function SetSuspendState ,将电脑带入 深度睡眠, 计划任务无法唤醒,按键也无法唤醒,除了按“电源键”或“左Ctrl键”
1 2 3 | 管理员权限执行 cmd powercfg -h off rundll32.exe powrprof.dll,SetSuspendState 0,1,0 |
失败原因: 这个命令执行后,电脑进入深度睡眠,计划任务无法唤醒。
成果
开关系统的“休眠”(hibernate)功能
1 2 3 4 5 | 管理员权限执行 cmd 打开休眠 powercfg -h on 关闭休眠 powercfg -h off |
打开休眠功能,会在C:\
下面产生一个好几个G的文件 hiberfil.sys
,关闭休眠功能后会被删除。
休眠 命令
1 2 | 管理员权限执行 cmd shutdown -h |
psshutdown 命令来睡眠电脑
1 2 | 管理员权限执行 cmd psshutdown.exe -d -t 0 -accepteula |
powrprof.dll,SetSuspendState 睡眠电脑
1 2 3 4 5 | 管理员权限执行 cmd - 先将休眠功能关闭 powercfg -h off - 睡眠电脑 rundll32.exe powrprof.dll,SetSuspendState 0,1,0 |
唤醒的计划任务配置
- 计划任务 》 创建任务
- “常规”选项卡
- 填写:名称、描述
- 勾选:不管用户是否登陆都要运行
- 勾选:使用最高权限运行
- “配置”:Windows Vista、Windows Server 2008
- “触发器”选项卡:配置唤醒时间点
- “操作”选项卡:C:\Windows\System32\cscript.exe //Nologo //B D:\tools\vbs\just_echo.vbs
- “条件”选项卡
- 勾选:“唤醒计算机运行此任务”
just_echo.vbs
1 2 3 4 5 6 7 | Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.CreateTextFile("D:\tools\vbs\test.txt", True) objFile.WriteLine Now objFile.Close Wscript.Echo "wakeup!" |