乐趣区

利用VBScript写一个定时任务弹窗-提醒休息或喝水

作为一个程序员,在学习或工作的过程中要长时间地面对电脑,经常会出现忘记休息或喝水的时候,有时候一坐就是好几个小时。
这对于身体健康是非常不利的,我以前也不是很在意,一般就是口渴了才喝水。直到最近这几天感觉到喉咙有点不舒服,可能是发炎了,我才意识到这是身体内部发出的抗议信号。
实际上,当你感觉到口渴的时候,你的身体其实是非常缺水了。所以,我们应该有规律地喝水,一般隔段时间就喝下。
闹钟 or 倒计时
可是对于很多人来说,要大脑自动条件反射来喝水是很难实现的。因此我们要通过外部手段来提醒我们。
提醒的方式有很多,比如设置几个闹钟,或者是倒计时。可惜这种利用手机的方式也存在一个弊端,有时候太专注于工作而没有时间看手机的话,那么闹钟和倒计时也无效了。
利用脚本写提醒工具
因此,为了更好地解决上面的问题,我们可以从本质出发,一般来说,程序员一天工作时面对电脑的时间较多,那么我们可以在电脑上面写一个定时任务。
我的做法是在 Windows 系统上面写 VBScript 脚本,每隔一段时间就弹窗,提醒我喝水。
具体实现
本文主要介绍怎么在 Windows 系统下用 VBScript 写一个简易的定时任务弹窗。
如果是 Macbook,可以用 AppleScript,Linux 系统可以用 Shell。
什么是 VBScript
VBScript 是微软开发的一门脚本语言,使用 VBScript,可以在 Windows 系统下编写自动任务等等。VBScript 文件以.vbs 为后缀,Windows 系统下可以直接双击运行,代码由 C:\Windows\System32 下面的 wscript.exe 负责解释执行。
VBScript 教程
我在写这个弹窗小工具之前,没有系统学习过 VBScript,现学现用,只是粗略学习了一下,如果想系统了解的,可以看一下菜鸟教程。
用到的 VBScript 知识
这个小工具其实很简单,核心就几行代码,类似网页中的 setInterval,然后时间一到就 alert。
下面具体介绍代码中用到的 VBScript 知识。

Dim variableName: 定义变量

Do … Loop: 循环,类似 do … while(true)

If … Then … Else … End If: 条件结构

InputBox: 类似网页中的 window.propmt

MsgBox: 类似网页中的 window.alert

详细代码
以下贴出该工具的全部代码。
Dim interval
Dim ret

‘ set task’s interval
Do
interval = InputBox(“Please input the interval:”, “Interval(seconds)”, 30 * 60 * 1000)

If interval = vbEmpty Then
‘ click cancel
MsgBox “You input empty, interval is set default half an hour.”
interval = 1800000
Exit Do
End If

If Not IsNumeric(interval) Then
‘ input what is’t a numeric
MsgBox “Please input number”
Else
Exit Do
End If
Loop

‘ execute interval task
Do
ret = MsgBox(“Drink some water”, vbOKCancel, “Time up”)
If ret = 1 Then
Wscript.sleep interval
Else
MsgBox “Close notification”, vbOkOnly, “Close notification”
Exit Do
End If
Loop
总结
有时候发现编程能够用在平常的生活中,还是挺有趣的。
最后附上项目的 Github 地址,欢迎 Star 或 Fork 支持,谢谢。

退出移动版