定时提醒和倒计时VBS脚本_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) 
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

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iamlaosong/article/details/84566634

智能推荐

python技术路线_Python新手提升到高手必须背的25条及技术路线资料核心点_weixin_39582656的博客-程序员秘密

Python新手必须知道的25条知识资料核心点1.如何将一个数字转换成一个字符串?你可以使用自带函数str()将一个数字转换为字符串。如果你想要八进制或者十六进制数,可以用oct()或hex()。Python用途非常广泛——网络应用,自动化,科学建模,大数据应用,等等。它也常被用作“胶水语言”,帮助其他语言和组件改善运行状况。Python让困难的事情变得容易,因此程序员可以专注于算法和数据结构的设...

python psutil模块_Python-psutil模块_weixin_39809175的博客-程序员秘密

psutil1.简单介绍2.安装[[email protected]_46_121_centos python]# pip3 install psutil我安装的是ipsutil-5.2.2这个版本!3.基本使用3.1 cpu相关In [1]: import psutilIn [2]: psutil.cpu_times()#使用cpu_times获取cpu的完整信息Out[2]: scputimes(user=769...

脚本执行报错No such file or directory_涛涛zy的博客-程序员秘密

报错:-bash: ./new1.sh: /bin/bash^M: bad interpreter: No such file or directory解决:vi打开脚本执行 :set ff=unix

关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别_关系代数笛卡尔积_Zcmmma的博客-程序员秘密

1. 笛卡尔积对两个关系R和S进行操作,产生的关系中元组个数为两个关系中元组个数之积。2. 等值联接在笛卡尔积的结果上再进行选择操作,挑选关系第i个分量与第(r+j)个分量值相等的元组3. 自然连接在等值联接(以公共属性值相等为条件)的基础上再行投影操作,去掉S中的公共属性列,当两个关系没有公共属性时,自然连接就转化成笛卡尔积直接上图Student表:Score表:1. 笛卡...

遇见一款很受用的一个工具,推荐给各位程序员_程序员画图工具_一个程序员的成长1的博客-程序员秘密

最近我在做一个电商项目,在设计数据库表的时候遇到过这样一个场景,商品表中的字段特别多,设置完后产品经理又说改一下,然后改了一下,但是我代码中的实体却有点问题,一直报字段不对应,这里大家就暂且不说什么我为什么不使用逆向工程之类的了。就因为这个问题30多个字段我改了好几次,确实挺费事的,在上周我发现一个很好用的工具,它不仅可以将我们的数据表直接转换为实体类,还可以生成DAO,甚至还可以把我们的jso...

Matlab和Simulink入门之旅_Waltiy的博客-程序员秘密

Matlab的新版本增加的自动驾驶工具箱听介绍相当牛逼,就想学学Matlab和Simulink。找了一圈,终于在官方网站发现了比较好的入门教程,Matlab入门之旅课程(中文)3个小时,Simulink入门之旅(英文,无中文)2个小时,虽然实际学习花了更长时间,不过这种交互式的课程体验还是相当不错的。Matlab入门之旅:https://ww2.mathworks.cn/learn/tutorials/matlab-onramp.htmlSimulink入门之旅:https://ww2.mathwo

随便推点

mac、ip、udp头解析_mac udp_叨陪鲤的博客-程序员秘密

一、MAC帧头定义/*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6];    //目的mac地址 char m_cSrcMacAddress[6];    //源mac地址 short m_cType;            //上一层协议类型,如0x0800代表上一层是IP...

bytebuffer 与 byte数组 转化_bytebuffer 转byte数组_杨宗卫的爸爸的博客-程序员秘密

更多0javaByteBuffer// Create a byte arraybyte[] bytes = new byte[10];// Wrap a byte array into a bufferByteBuffer buf = ByteBuffer.wrap(bytes);// Retrieve bytes b

【2021年1月新书推荐】Beginning Machine Learning in the Browser_图书分享员的博客-程序员秘密

各位好,此账号的目的在于为各位想努力提升自己的程序员分享一些全球最新的技术类图书信息,今天带来的是2021年1月由Apress出版社最新出版的一本关于机器学习的书。Beginning Machine Learning in the Browser作者:Suryadevara, Nagender 出版社:Apress出版时间:2021-01-10 ISBN:978-1-4842-6842-1图书简介在浏览器中或在资源受限的计算设备上应用人工智能技术。机器学习 (ML) 可能是一个令人望而生

ios笔记之_初探OC_Passer-by_的博客-程序员秘密

一、引言    挥别昨天,辞掉了网络工程师一职,开始专心学习ios开发,我深知学习开发的路是艰辛的,但毅然地选择坚持。经历过网络技术高强度的学习,面对一项新的技术学习,我并不畏惧,也没有太多的感慨,人生没有回头路,付出终会有回报,只想踏踏实实走好这段路。二、MAC系统快捷键功能MAC系统与Windows有很多相似之处,但也有很多区别,在学习编程之前掌握一定的操作技巧可以让自

Flask Mega-Tutorial 中文教程 V2.0 第4章:数据库_SteinKuo的博客-程序员秘密

最近在Flask Web Development作者博客看到第二版Flask Mega-Tutorial已在2017年底更新,现翻译给大家参考,希望帮助大家学习flask。这是Flask Mega-Tutorial系列的第四章,其中我将告诉您如何使用数据库。供您参考,以下是本系列文章的列表。第1章:Hello, World! 第2章:模板  第3章:Web表单 第4章:数据库...

JavaFX学习笔记(二) 用JavaFX Scene Builder设计UI_scene builder 左侧 菜单_oO临时工Oo的博客-程序员秘密

安装并运行JavaFX Scene Builder,新建一个fxml。其主界面如下  最上边是菜单栏,  左中是控件库,  左下是当前设计的UI所包括的控件,这是一个树状结构,只有一个根节点,一般是个Pane,默认是个AnchorPane。其实也可以改为其它Pane,具体可以参见控件中的containers。这些BorderPane具有类似swing的BorderLayou

推荐文章

热门文章

相关标签