真正可行的windows自动唤醒自动休眠方案 (笔记本无法自动开机关机的替代方案) (配合teamviewer可方便实现远程工作)

真正可行的windows自动唤醒自动休眠方案
(笔记本无法自动开机关机的替代方案)
(配合teamviewer可方便实现远程工作)

笔记本windows系统的定时唤醒不容易出问题,但定时休眠却较难稳定实现,原因在于计划任务本身会因某种未知的原因导致电脑进入不了空闲状态,从而使得系统无法稳定地通过电源管理设置自动进入休眠,也无法通过任务计划中的“仅当计算机空闲时间超过下列值时才启动此任务”设置来实现空闲状态自动休眠。因此怎样实现自动休眠,同时又保证工作时不会休眠,成为一个难题。本方案主要就是解决了这一难题。
一、定时唤醒:
设置如下:(我设置的唤醒时间:8:20,10:00,13:00,15:00,19:30,22:00)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二、定时休眠
定时休眠需要批处理脚本协助(脚本将在最后给出),因为计划任务的运行(在某种未知机制下)会导致系统始终处于繁忙状态,无法进入休眠状态,无论计划任务中的空闲时休眠还是电源管理中的“xx分钟后休眠”都不能稳定使用。因此,通过计划任务,不经判断空闲状态即执行休眠指令,可以绕过这个坑,同时,为了避免正常工作时被休眠,需要在休眠前弹出一个提示,用户可以在看到提示后手动停止执行休眠指令。
在这里插入图片描述

注意,这里必须选择“只在用户登录时运行”,否则指令窗口(cmd.exe)不弹出,导致无法看到即将休眠的提示窗口,也不方便手动取消休眠。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
脚本内容:(其中set delay=60000,即延迟60秒后再休眠,用户可以酌情修改)
@echo off
set delay=60000
set /a delay2=delay/1000
echo 计算机将在:%delay2%秒后休眠,取消休眠请关闭本窗口!
set TotalTime=0
set NowTime=%time%
::读取起始时间,时间格式为:13:01:05.95
:delay_continue
set /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_continue
shutdown -h

参考:https://jingyan.baidu.com/article/15622f2419ff79fdfcbea5db.html

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值