作者:iamlaosong
VBS是一种Windows脚本,它的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版),VBS是Visual 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