由於玩一個遊戲,該遊戲能夠支持多個號,每一個號有好多等時間的任務。javascript
來回切換看,太耽誤時間。手機的鬧鐘操做太麻煩。java
因此寫了一個使用配置文件的鬧鐘,簡單方便。code
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>