因为玩一个游戏,该游戏可以支持多个号,每个号有好多等时间的任务。
来回切换看,太耽误时间。手机的闹钟操作太麻烦。
所以写了一个使用配置文件的闹钟,简单方便。
var ForReading = 1, ForWriting = 2;
var configPath = "./ta.txt";
function getTs(){
return Math.floor((new Date()).getTime()/1000);
}
function GetEverything()
{
try{
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(configPath, ForReading);
var r = f.ReadAll();
f.close();
return r;
}catch(e){
return '';
}
}
function msgbox(msg){
var WshShell = WScript.CreateObject("WScript.Shell");
var BtnCode = WshShell.Popup(msg, 180, "== 小闹钟 ==", 4 + 1 + 64);
//WScript.Echo(msg);
return BtnCode;
}
function help(msg){
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Popup(msg+"-----------\n++举例,在"+configPath+"中写入:\n11 12 准备吃饭\n表示在11点12分显示“准备吃饭”的闹钟\n支持#开头注释掉一个闹钟\n支持“+m n”的格式表示设置一个闹钟在m小时n分之后;会自动修改闹钟文件,所以下次修改需要重新打开ta.txt\n支持每n分钟出提示:m35 起来休息一会儿吧——每35分钟显示一次“起来休息一会儿吧”", 60, "== 小闹钟 ==", 48);
}
while(true){
//try{
var txt = GetEverything();
if(txt){
var date = new Date();
var h = date.getHours();
var m = date.getMinutes();
var arr = txt.split("\n");
var msg = '';
var wflag = false;
var warr = [];
for(var i=0;i<arr.length;i++){
if(arr[i].substr(0,1)=='#'){
warr.push(arr[i]);
continue;
}
if(arr[i].substr(0,1)=='m'){
var tmp = arr[i].split(' ');
if(tmp.length<2){
msg = '重复闹钟'+(i+1)+',配置错误。\n格式:mn s,如:“m35 三十五分钟”,表示每35分钟显示一次:三十五分钟\n';
f = true;
continue;
}
var _m = parseInt(tmp[0].substr(1),10);
var ts = getTs();
var _s = tmp[1];
if(tmp.length<3 arr="" i="" tmp="" 0="" _s="" ts="" wflag="true;" else="" var="" lts="parseInt(tmp[2],10);" if="" ts-lts="" 60="">_m){
arr[i] = tmp[0]+" "+_s+" "+ts;
wflag = true;
var r = msgbox(_s);
while(r==4){
WScript.Sleep(60000);
r = msgbox("重复提醒:\n"+_s);
}
}
}
warr.push(arr[i]);
continue;
}
if(arr[i].substr(0,1)=='+'){
var tmp = arr[i].split(' ');
var _h = parseInt(tmp[0].substr(1),10);
var _m = parseInt(tmp[1],10);
var __h = h+_h;
var __m = m+_m;
if(__m>59){
__h = __h+Math.floor(__m/60);
__m = __m%60;
}
if(__h>23){
__h = __h%24;
}
arr[i] = __h+" "+__m+(tmp.length>2?(" "+tmp[2]):"");
wflag = true;
}
var tmp = arr[i].split(' ');
if(tmp.length>2){
var _h = parseInt(tmp[0],10);
var _m = parseInt(tmp[1],10);
var _t = tmp.length>2?tmp[2]:('闹钟('+(i+1)+')');
var f = false;
if(isNaN(_h)||_h<0 _h="">24){
msg = '闹钟'+(i+1)+',小时错误\n';
f = true;
}
if(isNaN(_m)||_m<0 _m="">59){
msg = '闹钟'+(i+1)+',分错误\n';
f = true;
}
if(!f && h==_h && m==_m){
msg += _t+"\n";
}else if(f){
help(msg);
msg = '';
}
warr.push(arr[i]);
}
}
if(msg){
var r = msgbox(msg);
while(r==4){
WScript.Sleep(60000);
r = msgbox("重复提醒:\n"+msg);
}
}
if(wflag){
var fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(configPath, ForWriting, true);
var txt = warr.join("\n");
f.Write(txt);
f.Close();
}
}//else WScript.Echo('无闹钟\n');
/*}catch(e){
help("出错了:"+e+";请检查闹钟配置。\n");
}*/
WScript.Sleep(60000);
}pre>
<p>
</p>
<p>
配置文件为c:\ta.txt。乱写一行,然后运行,会看到帮助提示
</p>
<p>
使用方法:wscript 闹钟.js。
</p>
<p>
</p>
<p>
<br />
</p></0></0></3>
浙公网安备 33010602011771号