[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 求vbs监测系统时间

求vbs监测系统时间
之前那个闹钟的问题没人理我,再求个简单点的吧,谢谢。
输入4位数,比如 0120 则在1个小时20分钟后弹出提示框。

我觉得吧,简单的东西更加应该自己动手。
你可以先想想自己到底哪里不会。
获取用户输入的字符串?
分割字符串?
延时?
弹出提示框?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

Main();
function Main()
{

        while(1)
        {
                var clock=new Clock();
                clock.Main();
        }
}
function Clock()
{
        this.TimeList=new Array();
        //Public methods
        this.GetCommand=function()
        {
                var cmdstr=InputBox("请设定提醒时间(中英文标点皆可):   "+
                '如:"10,3;12;12:30:22;30,2"    表示:'+
                "先每十分钟提醒一次,提醒三次;然后"+
                "12分钟提醒一次,只提醒一次;12:30:22提醒"+
                "一次;然后每三十分钟提醒一次,提醒两次","时间设定:","10,5");
                if(cmdstr=="")WScript.Quit();
                return cmdstr;
        }
       
        this.DellCommand=function(str)
        {       
                var re=/;/g;str=str.replace(re,";");
                re=/:/g;str=str.replace(re,":");
                re=/,/g;str=str.replace(re,",");
                re=null;
                var now=new Date(),ms=0,s="";
                s=now.getYear()+"/"+(now.getMonth()+1)+"/"+now.getDate()+" ";
                var list=str.split(";");
                for(i=0;i<list.length;i++)
                {
                        if(list[i].indexOf(":")>=0)
                                this.TimeList[this.TimeList.length]=new Date(s+list[i]);
                        if(list[i].indexOf(",")>=0)
                        {
                                var x=list[i].split(",");
                                for(j=0;j<new Number(x[1]);j++)
                                {
                                        ms+=60000*x[0];
                                        this.TimeList[this.TimeList.length]=new Date(now.getTime()+ms);
                                }
                        }
                        if((list[i].indexOf(":")==-1)&&(list[i].indexOf(",")==-1))
                        {
                                ms+=60000*list[i];
                                this.TimeList[this.TimeList.length]=new Date(now.getTime()+ms);
                        }
                }
                this.TimeList.sort();       
        }

       
        this.Wait=function(t)
        {
                while(1)
                {
                        var now=new Date();
                        if(now.getTime()>=t.getTime())
                        {
                                this.Warning();
                                break;
                        }
                        else
                                WScript.Sleep(200);
                };       
        }
       
        this.Warning=function()
        {
                var ws=new ActiveXObject("WScript.Shell"),now=new Date();
                var btn=ws.Popup("老大,时间到了!"+String.fromCharCode(13,10,13,10)+
                                "现在时间是:"+now.toLocaleString(),5,"提醒:",65);
                if(btn==2) WScript.Quit();
        }
       
        this.Main=function()
        {
                var cmdstr=this.GetCommand();
                this.DellCommand(cmdstr);
                for(var i in this.TimeList)
                        this.Wait(this.TimeList[i]);
        }
        //Private methods
        function InputBox(prompt, title, def)
        {
                if(title == undefined) title = "";
                if(def == undefined) def = "";
                var re=/\"/g;prompt=prompt.replace(re,'"+"');
                var sc = new ActiveXObject("MSScriptControl.ScriptControl");
                var code = 'InputBox("'+ prompt + '","' + title + '","' + def + '")';
                sc.Language = "VBScript";
                result = sc.Eval(code);
       
                sc=null;
                if(result != undefined) return result;
                else return "";
        }
}

TOP

返回列表