作为一名程序员,我每天都要面对电脑屏幕数小时,长期下来颈椎病和肩部僵硬成了我的常见问题。
医生告诉我,要想缓解这些症状,最重要的是做到劳逸结合,每隔一段时间就要站起来活动一下。
于是,我决定利用Windows的任务计划程序来定时锁屏,提醒我休息。
创建批处理脚本
首先,编写一个简单的批处理脚本来执行锁屏操作。
新建一个名为lockscreen.bat
的脚本文件,输入如下内容。
@echo off
timeout /t 2700 /nobreak
RUNDLL32.EXE user32.dll,LockWorkStation
exit /b
-
@echo off
: 这一行关闭了批处理脚本中的命令回显,使得脚本执行过程中不会显示每一行命令。 -
timeout /t 2700 /nobreak
: 这一行使用timeout
命令来暂停脚本的执行,等待指定的时间后继续执行后续命令。这里的时间是以秒为单位的,/t
后面跟的是等待的时间,即2700秒,也就是45分钟。/nobreak
参数表示在等待期间不接受任何键盘输入,即不允许用户提前终止等待。 -
RUNDLL32.EXE user32.dll,LockWorkStation
: 这一行调用了rundll32.exe
来执行user32.dll
中的LockWorkStation
函数,该函数的作用是锁定当前用户的桌面,从而达到锁屏的目的。 -
exit /b
: 这一行用于退出批处理脚本。/b
参数表示退出当前批处理文件,而不终止父进程或更高层的批处理文件(如果有)。
使用任务计划程序
打开“控制面板” -> “管理工具” -> “任务计划程序”,创建一个新的基本任务:
- 名称:给任务起个容易记忆的名字,比如“休息提醒”。
- 触发器:最开始我选择的是“登录时”,但是发现这样做并不奏效,因为一旦我登录了系统,任务就不会再触发。后来我发现应该选择“工作站解锁后”,这样每次我结束休息重新工作时就会重新计时。
- 操作:选择“启动程序”,浏览到之前创建的
lockscreen.bat
文件的位置。
设置步骤详解
- 打开“任务计划程序”并创建新任务。
- 在“触发器”选项卡中选择“新建”。
- 选择“工作站解锁后”作为触发条件。
- 这意味着每当工作站被解锁时,计时器就会重新开始计时。
- 在“操作”选项卡中添加“启动程序”动作,并指向
lockscreen.bat
文件。 - 不需要在“设置”选项卡中配置重复任务的时间间隔,因为我们已经在批处理脚本中设置了45分钟的倒计时。
踩坑经验
在最初几次尝试中,我发现每次登录系统后,脚本并没有按照预期自动运行。问题在于,“登录时”作为触发器只能在用户首次登录时触发任务,而不能在之后的周期内重复触发。因此,我不得不重新思考如何让任务在登录后每45分钟重复执行一次。
最终,我选择了“工作站解锁后”作为触发器。这样一来,每次我从休息状态返回工作状态时,计时器都会重新开始计时。这意味着每当我完成45分钟的工作后,工作站会自动锁屏,提醒我休息。
效果
登录激活电脑后,会很快执行脚本,弹出一个cmd窗口,显示倒计时。
注意,这个窗口不能关闭。
通过上述步骤,设置一个定时锁屏提醒功能,以提醒我养成良好的工作、休息习惯,劳逸结合,缓解肩颈压力。