- //********************************* 说明 *****************************************
- //时间格式为24小时制 -- 00:00~23:59
- //当不在这个范围内会报错并返回让用户重新输入~~ :)
- //********************************* 源代码 *****************************************
- dim Obj,UserName,NowTime,LenS,Num
- set Obj = createobject("WScript.Shell")
- //调用“Wscript.Shell”
- UserName=Obj.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner")
- // RegRead -- 读取注册表
- YN=Obj.Popup(UserName&" 你好,是否使用自动定时关机?",0,"关机?",36)
- //Popup--弹出对话框
- 如果表达式 (YN=6) 为真,则
- //标记 输入时间
- 标记 InputTime
- 调用外部VBScript子程序 SWTime=InputBox ("请输入关机时间!24小时格式(00:00~23:59之间)!如:2:03 , 22:35")
- //*********************************** 判断时间格式 ****************************************************
- LenS=Len(SWTime)
- //Len--获得字符串的长度
- Num=Instr(SWTime,":")
- //Instr--获得":"所在字符串中的位置
- 如果表达式 (Num=0) 为真,则
- Num=Instr(SWTime,":")
- 条件结束
- 如果表达式 (Num=0) 为真,则
- Call Obj.Popup("间隔符错误!请用“ : ”或者“ : ”",5,"时间格式错误!",48)
- //跳到 输入时间
- 跳转到标记 InputTime
- 条件结束
- 如果表达式 (left(SWTime,Num-1)>23 or left(SWTime,Num-1)<0) 为真,则
- //left--取字符串左边Num-1个长度的字符
- Call Obj.Popup("小时格式输入错误!",5,"时间格式错误!",48)
- 跳转到标记 InputTime
- 条件结束
- 如果表达式 (Right(SWTime,LenS-Num)>59 or Right(SWTime,LenS-Num)<0) 为真,则
- //Right--取字符串右边LenS-Num个长度的字符
- Call Obj.Popup("分钟格式输入错误!",5,"时间格式错误!",48)
- //跳到 输入时间
- 跳转到标记 InputTime
- 条件结束
- //*********************************** 判断时间格式 ****************************************************
- Call Obj.Popup("系统将在"&SWTime&"关机!!",5,"自动关机!",48)
- 标记 Start
- NowTime=Time
- //Time -- 获得当前时间
- 如果表达式 (Hour(SWTime)=Hour(NowTime) and Minute(SWTime)=Minute(NowTime)) 为真,则
- //Hour -- 获得小时, Minute -- 获得分钟
- Obj.Run "shutdown /f /s /t 0"
- //调用shutdown命令。 /f--强行关闭应用程序而不提醒, /s--关闭计算机(要重启的话,请把这改成/r[重启计算机]),/t time--在time秒后前闭计算机。
- 条件结束
- 延时30000毫秒
- 跳转到标记 Start
- 条件结束