真正可行的windows自动唤醒和休眠-自动开机关机
1、真正可行的windows自动唤醒自动休眠方案(笔记本无法自动开机关机的替代方案)(配合teamviewer可方便实现远程工作)笔记本windows系统的定时唤醒不容易出问题,但定时休眠却较难稳定实现,原因在于计划任务本身会因某种未知的原因导致电脑进入不了空闲状态,从而使得系统无法稳定地通过电源管理设置自动进入休眠,也无法通过任务计划中的“仅当计算机空闲时间超过下列值时才启动此任务”设置来实现空闲状态自动休眠。因此怎样实现自动休眠,同时又保证工作时不会休眠,成为一个难题。本方案主要就是解决了这一难题。
2、一、定时唤醒:设置如下:(我设置的唤醒时间:8:20,10:00,13:00,15:00,19:30,22:00)
3、二、定时休眠定时休眠需要批处理脚本协助(脚本将在最后给出),因为计划任务的运行(在某种未知机制下)会导致系统始终处于繁忙状态,无法进入休眠状态,无论计划任务中的空闲时休眠还是电源管理中的“xx分钟后休眠”都不能稳定使用。因此,通过计划任务,不经判断空闲状态即执行休眠指令,可以绕过这个坑,同时,为了避免正常工作时被休眠,需要在休眠前弹出一个提示,用户可以在看到提示后手动停止执行休眠指令。注意,这里必须选择“只在用户登录时运行”,否则指令窗口(cmd.exe)不弹出,导致无法看到即将休眠的提示窗口,也不方便手动取消休眠。
4、脚本内容:(其中set delay=60000,即延迟60秒后再休眠,用户可以酌情修改)@echo offset delay=60000set /a delay2=delay/1000echo 计算机将在:%delay2%秒后休眠,取消休眠请关闭本窗口!set TotalTime=0set NowTime=%time%::读取起始时间,时间格式为:13:01:05.95:delay_continueset /a minute1=1%NowTime:~3,2%-100::读取起始时间的分钟数set /a second1=1%NowTime:~-5,2%%NowTime:~-2%0-100000::将起始时间的秒数转为毫秒set NowTime=%time%set /a minute2=1%NowTime:~3,2%-100:: 读取现在时间的分钟数set /a second2=1%NowTime:~-5,2%%NowTime:~-2%0-100000::将现在时间的秒数转为毫秒set /a TotalTime+=(%minute2%-%minute1%+60)%%60*60000+%second2%-%second1%if %TotalTime% lss %delay% goto delay_continueshutdown -h