作为一个程序员,在学习或工作的过程中要长时间地面对电脑,经常会出现忘记休息或喝水的时候,有时候一坐就是好几个小时。
这对于身体健康是非常不利的,我以前也不是很在意,一般就是口渴了才喝水。直到最近这几天感觉到喉咙有点不舒服,可能是发炎了,我才意识到这是身体内部发出的抗议信号。
实际上,当你感觉到口渴的时候,你的身体其实是非常缺水了。所以,我们应该有规律地喝水,一般隔段时间就喝下。
闹钟 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
支持,谢谢。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。