首页 > 代码库 > 一个基于windows计划任务的小闹钟

一个基于windows计划任务的小闹钟

最近工作忙,难免对女友疏于照料。于是写了一个小程序,提醒她睡觉。

我用bat编写了最初的功能,代码如下:

@echo off
title %date% %time:~,8%
mshta vbscript:msgbox("杨华秋!睡觉了!",36,"碎师傅说:")(window.close)
mshta vbscript:msgbox("杨华秋!吃药了!",36,"碎师傅说:")(window.close)

mshta 用来在批处理中调用其他语言的代码。这里我用它调用了vbs中的msgbox函数来生成一个弹出对话框。

这个bat运行的时候会弹出cmd的对话框,很不友好。我用一个vbs程序来调用它:

set ws=wscript.createobject("wscript.shell")
ws.run "D:贴心小闹钟1.0\小闹钟1.0.bat /start",0

将它保存为vbs文件。这里的0表示隐藏窗口。

我需要有更多的功能,比如,我和女友是在今年的7月13号相恋。我希望可以做一个简单的统计。

我发现bat很难实现这个功能,vbs却可以轻松做到:

dim a
a=datevalue("2014-7-13")
msgbox "亲爱的换鱼,现在是"&now&+vbCrLf++vbCrLf+"碎师傅已经陪伴你"&datediff("d",a,now)&"天啦~,继续努力哦!",,"碎师傅说:"

datediff函数用来返回两个日期之间的时间间隔。

我希望小闹钟可以在每天的23:00运行,统计程序在每次开机的时候运行。于是我写了这样一个批处理:

mkdir D:\贴心小闹钟1.0
copy "小闹钟1.0.bat" "D:贴心小闹钟1.0\小闹钟1.0.bat"
copy "VBS调用.vbs" "D:贴心小闹钟1.0\VBS调用.vbs"
copy "可爱的碎师傅.vbs" "D:贴心小闹钟1.0\可爱的碎师傅.vbs"

schtasks /create /tn "可爱的碎师傅" /tr d:\贴心小闹钟1.0\可爱的碎师傅.vbs /sc onlogon
schtasks /create /tn "贴心小闹钟" /tr d:\贴心小闹钟1.0\VBS调用.vbs /sc daily /st 23:00:00 /ed 2014/12/31

pause

这个bat的作用显而易见。在执行一次之后,它会在D盘新建一个文件夹,并且将三个子程序拷贝进去。然后利用shctasks新建一个计划任务,约定启动时间。

onlogon是每次登陆的时候启动。我尝试使用onstart,效果不如意。

sc daily /st 23:00:00 /ed 2014/12/31表示每天的23:00启动,计划一直持续到2014/12/31。

这样一个温馨的小闹钟就做好了。

一个基于windows计划任务的小闹钟