1. 程式人生 > >定時提醒和倒計時VBS指令碼

定時提醒和倒計時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) 
dd = tx - Date
MsgBox "    距離" & xm & "大約還有" & mm & "個月,共" & dd & "天!", vbOKOnly, bt

'==事件2===================================
xm = "系統釋出"                 '事件名稱
tx = CDate("2018-12-20")        '事件日期
'-----------------------------------------
mm = (year(tx) - Year(Date)) * 12 + month(tx) - Month(Date) 
dd = tx - Date
MsgBox "    距離" & xm & "大約還有" & mm & "個月,共" & dd & "天!", vbOKOnly, bt