//時間格式為24小時制 -- 00:00~23:59
//當不在這個範圍內會報錯並返回讓用戶重新輸入~~ :)
//********************************* 源代碼 *****************************************
dim Obj,UserName,NowTime,LenS,Num
set Obj = createobject("WScript.Shell")
//調用“Wscript.Shell”
VBS UserName=Obj.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner")
// RegRead -- 讀取註冊表
VBS YN=Obj.Popup(UserName&" 妳好,是否使用自動定時關機?",0,"關機?",36)
//Popup--彈出對話框
If YN=6
//標記 輸入時間
Rem InputTime
VBSCall SWTime=InputBox ("請輸入關機時間!24小時格式(00:00~23:59之間)!如:2:03 , 22:35")
//*********************************** 判斷時間格式 ****************************************************
VBS LenS=Len(SWTime)
//Len--獲得字符串的長度
VBS Num=Instr(SWTime,":")
//Instr--獲得":"所在字符串中的位置
If Num=0
VBS Num=Instr(SWTime,":")
EndIf
If Num=0
VBSCall Obj.Popup("間隔符錯誤!請用“ : ”或者“ : ”",5,"時間格式錯誤!",48)
//跳到 輸入時間
Goto InputTime
EndIf
If left(SWTime,Num-1)>23 or left(SWTime,Num-1)<0
//left--取字符串左邊Num-1個長度的字符
VBSCall Obj.Popup("小時格式輸入錯誤!",5,"時間格式錯誤!",48)
Goto InputTime
EndIf
If Right(SWTime,LenS-Num)>59 or Right(SWTime,LenS-Num)<0
//Right--取字符串右邊LenS-Num個長度的字符
VBSCall Obj.Popup("分鐘格式輸入錯誤!",5,"時間格式錯誤!",48)
//跳到 輸入時間
Goto InputTime
EndIf
//*********************************** 判斷時間格式 ****************************************************
VBSCall Obj.Popup("系統將在"&SWTime&"關機!!",5,"自動關機!",48)
Rem Start
VBS NowTime=Time
//Time -- 獲得當前時間
If Hour(SWTime)=Hour(NowTime) and Minute(SWTime)=Minute(NowTime)
//Hour -- 獲得小時, Minute -- 獲得分鐘
VBS Obj.Run "shutdown /f /s /t 0"
//調用shutdown命令。 /f--強行關閉應用程序而不提醒, /s--關閉計算機(要重啟的話,請把這改成/r[重啟計算機]),/t time--在time秒後前閉計算機。
EndIf
Delay 30000
Goto Start
EndIf