2

图片描述

作为一个程序员,在学习或工作的过程中要长时间地面对电脑,经常会出现忘记休息或喝水的时候,有时候一坐就是好几个小时。

这对于身体健康是非常不利的,我以前也不是很在意,一般就是口渴了才喝水。直到最近这几天感觉到喉咙有点不舒服,可能是发炎了,我才意识到这是身体内部发出的抗议信号。

实际上,当你感觉到口渴的时候,你的身体其实是非常缺水了。所以,我们应该有规律地喝水,一般隔段时间就喝下。

闹钟 or 倒计时

可是对于很多人来说,要大脑自动条件反射来喝水是很难实现的。因此我们要通过外部手段来提醒我们。

提醒的方式有很多,比如设置几个闹钟,或者是倒计时。可惜这种利用手机的方式也存在一个弊端,有时候太专注于工作而没有时间看手机的话,那么闹钟和倒计时也无效了。

利用脚本写提醒工具

因此,为了更好地解决上面的问题,我们可以从本质出发,一般来说,程序员一天工作时面对电脑的时间较多,那么我们可以在电脑上面写一个定时任务。

我的做法是在Windows系统上面写VBScript脚本,每隔一段时间就弹窗,提醒我喝水。

具体实现

本文主要介绍怎么在Windows系统下用VBScript写一个简易的定时任务弹窗。

如果是Macbook,可以用AppleScriptLinux系统可以用Shell

什么是VBScript

VBScript是微软开发的一门脚本语言,使用VBScript,可以在Windows系统下编写自动任务等等。
VBScript文件以.vbs为后缀,Windows系统下可以直接双击运行,代码由C:\Windows\System32下面的wscript.exe负责解释执行。

VBScript教程

我在写这个弹窗小工具之前,没有系统学习过VBScript,现学现用,只是粗略学习了一下,如果想系统了解的,可以看一下菜鸟教程

用到的VBScript知识

这个小工具其实很简单,核心就几行代码,类似网页中的setInterval,然后时间一到就alert

下面具体介绍代码中用到的VBScript知识。

  1. Dim variableName: 定义变量
  2. Do ... Loop: 循环,类似do ... while(true)
  3. If ... Then ... Else ... End If: 条件结构
  4. InputBox: 类似网页中的window.propmt
  5. 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支持,谢谢。

Mask
1.1k 声望416 粉丝

Hope,life and growth are all worth to fighting.