定时提醒和倒计时VBS脚本

作者:iamlaosong

VBS是一种Windows脚本,它的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版)VBSVisual Basic的的一个抽象子集,是系统内置的,除了web前端使用外,用它编写的脚本代码可直接由Windows系统执行,也不需要什么编程环境,用记事本就可以完成。所以就有人用这个编写脚本,使各种各样的任务自动化,使你从重复琐碎的工作中解脱出来,极大的提高工作效率。网上就有很多有用、有趣的VBS脚本代码,比如把下面这段代码复制到记事本中保存,扩展名用vbs,双击文件运行,就可以检测你的系统是32位(x86)还是64位(x64):

'sysType.vbs
Function X86orX64()
    'Author: Demon
    'Date: 2011/11/12
    'Website: http://demon.tw
    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
    
    For Each objItem in colItems
        If InStr(objItem.SystemType, "86") <> 0 Then
            X86orX64 = "The system type is x86."
        ElseIf InStr(objItem.SystemType, "64") <> 0 Then
            X86orX64 = "The system type is x64."
        Else
            X86orX64 = "The system type is " & objItem.SystemType
        End If
    Next
    
End Function

WScript.Echo X86orX64()

因为这个脚本用起来方便,还可以放到Excel的编程环境中调试,所以我有时会用这个脚本编写一些有用的脚本,比如下面两个提醒脚本。

1、定时提醒

这个功能主要是提醒我开会用的,因为经常会忘了开会这回事。网上当然有很多类似的功能强大的闹钟工具,可是我的需求很简单,只要到时候弹出一个窗口提示一下就行了。下面是代码,使用的时候用记事本修改参数保存,双击运行就行了,当然也可以用于其他事情的提醒:

'定时提醒:设置下面四个参数(一般只要改第1、2两个)

'1、事件名称
xm = "秋招预备会(201会议室)"                 

'2、开始时间
tx = "16:00:00"

'3、提前分钟数
tq = 10

'4、窗口标题
bt = "定时提醒" 

'===============下面部分一般不用改==================

txsj = TimeValue(tx) - tq / (24 * 60)
jgsj = Round((TimeValue(tx) - Time) * 24 * 60, 2)

If jgsj < 0 Then
    MsgBox "     " & xm & "开始已经" & jgsj * (-1) & "分钟,请尽快参加!", vbOKOnly, bt
Else
    If Time > txsj Then
        MsgBox "    距离" & xm & "只有" & jgsj & "分钟,请尽快做好准备工作!", vbOKOnly, bt
    Else
        MsgBox "    距离" & xm & "开始" & tq & "分钟时,将弹出窗口提示!", vbOKOnly, bt
        Do While Time < txsj
            WScript.Sleep (60000)
        Loop
        
        MsgBox "    距离" & xm & "还有" & tq & "分钟,请做好准备工作!", vbOKOnly, bt
    End If
End If

这些参数也可以用InputBox输入,如:

xm = InputBox("请输入事件名称:", "输入事件名称", Time + 1 / 24)

tx = InputBox("请输入时间:", "输入开始时间", Time + 1 / 24)

但我更喜欢打开脚本直接修改。

2、倒计时

定时提醒仅用于当天某个时间,如果时间还早,需要每天提醒一下怎么办?就可以用这个倒计时脚本。将这个脚本的快捷方式放到开始菜单的启动目录,每次开机时就会运行一次,提示你距离某个事件还有多少天。如果需要多个倒计时,只需要将内容复制几份,修改成相应的提示就行了,如下面代码:

'倒计时:设置下面三个参数
bt = "倒计时提醒"           '窗口标题

'==事件1====================================
xm = "老婆生日"             '事件名称
tx = CDate("2019-02-20")    '事件日期
'-----------------------------------------
mm = (year(tx) - Year(Date)) * 12 + month(tx) - Month(Date) 
md = Day(tx) - Day(Date)
If md <= 0 Then
    md = md + Day(tx - Day(tx))
    mm = mm - 1
End If
dd = tx - Date
msg = "    今天是" & Date & "," & WeekdayName(Weekday(Date)) & "," & vbCrLf & vbCrLf
msg = msg & "    距离<<<" & xm & ">>>还有" & mm & "个月零" & md & "天,即" & dd & "天!"
MsgBox msg, vbOKOnly, bt

'==事件2===================================
xm = "系统发布"                 '事件名称
tx = CDate("2018-12-20")        '事件日期
'-----------------------------------------
mm = (year(tx) - Year(Date)) * 12 + month(tx) - Month(Date) 
md = Day(tx) - Day(Date)
If md <= 0 Then
    md = md + Day(tx - Day(tx))
    mm = mm - 1
End If
dd = tx - Date
msg = "    今天是" & Date & "," & WeekdayName(Weekday(Date)) & "," & vbCrLf & vbCrLf
msg = msg & "    距离<<<" & xm & ">>>还有" & mm & "个月零" & md & "天,即" & dd & "天!"
MsgBox msg, vbOKOnly, bt

3、如果定时提醒不是当天,可以在定时提醒脚本里面增加日期判断,如果是当天,则到时提醒,否则略过。可以将这样的定时提醒代码放到启动目录,也可以将定时提醒脚本放到倒计时脚本中。代码如下:

'倒计时:设置下面三个参数
bt = "倒计时提醒"           '窗口标题
xm = "退休"                 '事件名称
tx = CDate("2022-08-29")    '事件日期
'=====================================
mm = (year(tx) - Year(Date)) * 12 + month(tx) - Month(Date) 
md = Day(tx) - Day(Date)
If md <= 0 Then
    md = md + Day(tx - Day(tx))
    mm = mm - 1
End If
dd = tx - Date
msg = "    今天是" & Date & "," & WeekdayName(Weekday(Date)) & "," & vbCrLf & vbCrLf
msg = msg & "    距离<<<" & xm & ">>>还有" & mm & "个月零" & md & "天,即" & dd & "天!"
MsgBox msg, vbOKOnly, bt

rq = CDate("2018-08-29")    '事件日期
If Date = rq Then
'定时提醒:设置下面四个参数(一般只要改第1、2两个)
    xm = "去食堂拿外卖"
    tx = "17:30:00"
    tq = 10
    bt = "定时提醒"
    
    '===============下面部分一般不用改==================
    
    txsj = TimeValue(tx) - tq / (24 * 60)
    jgsj = Round((TimeValue(tx) - Time) * 24 * 60, 2)
    
    If jgsj < 0 Then
        MsgBox "     <" & xm & ">开始已经" & jgsj * (-1) & "分钟,请尽快参加!", vbOKOnly, bt
    Else
        If Time > txsj Then
            MsgBox "    距离<" & xm & ">只有" & jgsj & "分钟,请尽快做好准备工作!", vbOKOnly, bt
        Else
            MsgBox "    距离<" & xm & ">开始" & tq & "分钟时,将弹出窗口提示!", vbOKOnly, bt
            Do While Time < txsj
                WScript.Sleep (60000)
            Loop
            
            MsgBox "    距离<" & xm & ">还有" & tq & "分钟,请做好准备工作!", vbOKOnly, bt
        End If
    End If

End If

 

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值