Dim WshShell,FSO
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WinVer = WshShell.Environment("Process")
Set Args = WScript.Arguments
CloseTime = 5
FileName = WScript.ScriptName
FileFullName = WScript.ScriptFullName
FilePath = FSO.GetParentFolderName(FileFullName)
InsPath = FSO.GetSpecialFolder(1)
InsFullName = FSO.BuildPath(InsPath ,FileName)
LnkPathNT = WshShell.SpecialFolders(2)
LnkPath9X = WshShell.SpecialFolders(14)
LnkPathAll = WshShell.SpecialFolders("StartMenu")
OtherFileName="shutdown.exe"
OtherFilePath=FSO.GetSpecialFolder(1)
TemFileName="无标题"
TemFilePath=FSO.GetSpecialFolder(2)
Copyright="玲珑科技"
QQ="QQ:25926183"
Email="Email:fty1995@163.com"
InsTitle="WinNT关机管理程序"
InsAnswer="WinNT关机管理程序"
RegPath1="HKLM\SOFTWARE\LLKJ\SYSSoft\Manage_WinPower\"
RegValue1="关机管理"
RegForm1="REG_SZ"
RegPath2="HKLM\SOFTWARE\LLKJ\SYSSoft\Manage_WinPower\DelAllAtShutDown"
RegValue2="No"
RegValue3="Yes"
RegValue4="All"
RegForm2="REG_SZ"
If WinVer("OS") = "Windows_NT" Then
LnkPath=LnkPathNT
MyShortcutFolder="快捷功能"
MyShortcutName="关机管理(CTRL+ALT+↑).Lnk"
MyShortcutHotKey="CTRL+ALT+Up"
MyShortcutHotKeybak="CTRL+ALT+↑"
IF FileFullName <> InsFullName then
intAnswer = MsgBox("【是】将“"+ InsAnswer +"”加入到快捷键" +chr(34)+ MyShortcutHotKeybak +chr(34)+ ","&Chr(10)&Chr(10)&"【否】将“"+ InsAnswer +"”取消系统热键" +chr(34)+ MyShortcutHotKeybak +chr(34)+ "。 ", vbQuestion + vbYesNoCancel, "安装 - "+ InsTitle +" - "+ Copyright)
If intAnswer = vbYes Then
FSO.GetFile(FileFullName).Copy(InsFullName)
If (FSO.FileExists(FSO.BuildPath(OtherFilePath,OtherFileName))) Then
else
If (FSO.FileExists(FSO.BuildPath(FilePath,"shutdown.llkj"))) Then
FSO.GetFile(FSO.BuildPath(FilePath,"shutdown.llkj")).Copy(FSO.BuildPath(OtherFilePath,OtherFileName))
else
Call alltovbs
end if
end if
If (FSO.FolderExists(FSO.BuildPath(LnkPath ,"\附件\" & MyShortcutFolder))) Then
else
FSO.CreateFolder(FSO.BuildPath(LnkPath ,"\附件\" & MyShortcutFolder))
end if
Set MyShortcut = WshShell.CreateShortcut(FSO.BuildPath(LnkPath ,"附件\" & MyShortcutFolder & "\" & MyShortcutName))
MyShortcut.TargetPath = (InsFullName)
MyShortcut.WorkingDirectory = (InsPath)
MyShortcut.Windowstyle = 4
MyShortcut.IconLocation = (FSO.BuildPath(LnkPath ,"Shell32.dll, 27"))
MyShortcut.Description = "定时关机、倒计时关机、立即关机、取消定时及倒计时关机"
MyShortcut.Hotkey = MyShortcutHotKey
MyShortcut.Save
WshSHell.RegWrite RegPath1,RegValue1,RegForm1
WshSHell.RegWrite RegPath2,RegValue2,RegForm2
WshShell.popup _
"添加脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"添加快捷方式:"+chr(10)+ FSO.BuildPath(LnkPath ,"附件\" & MyShortcutFolder & "\" & MyShortcutName) +chr(10)+chr(10)+ _
"添加系统热键:" +chr(10)+chr(34) & MyShortcutHotKeybak +chr(34)+chr(10)+chr(10)+ _
"此程序可用于:"+chr(10)+"1.定时关闭装有 ShutDown 的 Windows 系统。"+chr(10)+ _
"2.倒计时关闭装 ShutDown 的 Windows 系统。"+chr(10)+ "3.立即关闭装有 ShutDown 的 Windows 系统。"+chr(10)+ _
"4.取消误操作 ShutDown 造成系统定时关机。"+chr(10)+ _
"5.取消误操作 ShutDown 造成的倒计时关机。"+chr(10)+"6.取消病毒破坏进程 SVCHOST 造成的倒计时关机。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "安装成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
If intAnswer = vbNo Then
FSO.DeleteFile InsFullName
FSO.DeleteFile FSO.BuildPath(LnkPath ,"附件\" & MyShortcutFolder & "\" & MyShortcutName)
WshSHell.RegDelete RegPath2
WshSHell.RegDelete RegPath1
WshShell.popup _
"删除脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"删除快捷方式:"+chr(10)+ FSO.BuildPath(LnkPath ,"附件\" & MyShortcutFolder & "\" & MyShortcutName) +chr(10)+chr(10)+ _
"取消系统热键:" +chr(10)+chr(34) & MyShortcutHotKeybak +chr(34)+chr(10)+chr(10)+ _
"此程序可用于:"+chr(10)+"1.定时关闭装有 ShutDown 的 Windows 系统。"+chr(10)+ _
"2.倒计时关闭装 ShutDown 的 Windows 系统。"+chr(10)+ "3.立即关闭装有 ShutDown 的 Windows 系统。"+chr(10)+ _
"4.取消误操作 ShutDown 造成系统定时关机。"+chr(10)+ _
"5.取消误操作 ShutDown 造成的倒计时关机。"+chr(10)+"6.取消病毒破坏进程 SVCHOST 造成的倒计时关机。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "卸载成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
If intAnswer = vbCancel Then
end if
ELSE
If WshSHell.AppActivate("系统关机") = True Then
'WshSHell.SendKeys "{WIN}+{M}"
WshSHell.Run ("ShutDown -A"), vbHide
WScript.Sleep 1000
WshSHell.Run ("ShutDown -A"), vbHide
WshShell.popup chr(10) &_
"您已经成功的取消了倒计时关机。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "取消倒计时关机 - "+ InsTitle +" - "+ Copyright, 0 + 64
else
Dim MyTime,MyOut1,MyOut2
MyTime=null
MyTime=InputBox("1.请输入定时时间:(格式20:10)"&vblf&vblf&"2.倒计时关机时间:(单位/分钟)"&vblf&vblf&"3.输入‘xxx’可以立即关机。"&vblf&vblf&"4.输入‘yyy’取消定时关机。",InsTitle&"- "&Copyright,"1")
If IsNumeric(MyTime)=False Then
If IsDate(MyTime)=True Then
WshShell.Run ("at "&MyTime&" ShutDown -s"), vbHide
WshShell.popup chr(10) &_
"定时成功!电脑将在‘ "&MyTime&" ’关机!"+ chr(10) &chr(10) & _
"取消关机请按快捷键: "&chr(34)+ MyShortcutHotKeybak +chr(34)+chr(10) &_
chr(10) &CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "定时成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
Else
If LCase(MyTime)="xxx" Then
WshShell.Run ("ShutDown -s -t 0"), vbHide
WScript.Quit(0)
End If
If LCase(MyTime)="yyy" Then
strComputer = "."
ZNum=0
DNum=0
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery ("Select * from Win32_ScheduledJob")
If colScheduledJobs.count=0 Then
WshShell.popup chr(10) &_
"目前系统还没有定时关机任务计划!"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "错误提示 - "+ InsTitle +" - "+ Copyright, 0 + 48
End If
For Each objJob in colScheduledJobs
RWID=objJob.JobID
RWCmd=objJob.Command
RWTime=objJob.StartTime
RWCmd_SD = Left(RWCmd, 8)
RWTime_Q=Right(RWTime, 3)
RWTime_H=Mid(RWTime,9,2)
RWTime_M=Mid(RWTime,11,2)
RWTime_Q2=Mid(RWTime,22,1)
if RWTime_Q/60<10 then
tempdat="0"
else
tempdat=""
end if
if RWTime_Q2="+" then
RWTime_SQ2 = "东 "&tempdat&RWTime_Q/60&" 区"
Elseif RWTime_Q2="-" then
RWTime_SQ2 = "西 "&tempdat&RWTime_Q/60&" 区"
Else
RWTime_SQ2 = "第‘0’区"
End If
if RWTime_Q="480" Then
RWTime_SQ="北京时间"
Elseif RWTime_Q="000" Then
RWTime_SQ="国际时间"
Else
RWTime_SQ="这是哪啊"
End If
if UCase(RWCmd_SD)<>"SHUTDOWN" Then
WshShell.popup chr(10) &_
"目前系统没有‘定时关机’的任务计划!"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "错误提示 - "+ InsTitle +" - "+ Copyright, 0 + 48
Else
ZNum=ZNum+1
if WshSHell.RegRead(RegPath2) = RegValue4 Then
Set objInstance = objWMIService.Get("Win32_ScheduledJob.JobID="&RWID)
err = objInstance.Delete
Else
CloseWinTime=InputBox("任务编号:{ "&RWID&" }"&" "&"{ "&RWTime_SQ2&" }"&vblf&vblf&"关机时间:{ "&RWTime_H&"点"&RWTime_M&"分"&" }"&"{ "&RWTime_SQ&" }"&vblf&vblf&"如果输入:{yyy} 则取消所有定时关机。","取消定时关机 - 第 "&ZNum&" 个关机任务。","取消单个定时关机任务请直接点‘确定’")
If LCase(CloseWinTime)="yyy" Then
WshSHell.RegWrite RegPath2,RegValue4,RegForm2
Set objInstance = objWMIService.Get("Win32_ScheduledJob.JobID="&RWID)
err = objInstance.Delete
Elseif CloseWinTime<>"" Then
WshSHell.RegWrite RegPath2,RegValue3,RegForm2
DNum=DNum+1
Set objInstance = objWMIService.Get("Win32_ScheduledJob.JobID="&RWID)
err = objInstance.Delete
end if
end if
end if
Next
else
WshShell.popup chr(10) &_
"您的输入有错误!请重新输入!"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "错误提示 - "+ InsTitle +" - "+ Copyright, 0 + 48
end if
End If
Else
If MyTime<=600 and MyTime>0 Then
WshShell.popup chr(10) &_
"设置成功!电脑将在‘ "&MyTime&" ’分钟后关机!"+ chr(10) &chr(10) & _
"取消倒计时关机请按快捷键: "&chr(34)+ MyShortcutHotKeybak +chr(34)+chr(10) &_
chr(10) &CloseTime & " 秒钟后本窗口关闭时开始倒计时!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "设置成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
WshShell.Run ("ShutDown -s -t "&MyTime*60), vbHide
Elseif MyTime<>"" then
WshShell.popup _
chr(10)+"输入错误!倒计时时间不能为 0 分钟或多于 600 分钟(10小时)!"+chr(10)+ _
chr(10)+chr(10) & CloseTime & " 秒后本窗口自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "错误提示 - "+ InsTitle +" - "+ Copyright, 0 + 48
End If
End If
END IF
if WshSHell.RegRead(RegPath2) = RegValue4 Then
WshSHell.RegWrite RegPath2,RegValue2,RegForm2
WshShell.popup chr(10) & _
"您已经成功的取消了全部‘ " & ZNum & " ’个计划任务定时关机。" + chr(10) & chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "取消定时关机 - "+ InsTitle +" - "+ Copyright, 0 + 64
elseif WshSHell.RegRead(RegPath2) = RegValue3 Then
WshSHell.RegWrite RegPath2,RegValue2,RegForm2
WshShell.popup chr(10) &_
"您取消了‘ "& DNum &" ’个定时关机,还有‘ "& ZNum-DNum &" ’个任务没取消。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "取消定时关机 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
END IF
Else
WshShell.popup _
"程序要求运行于 " + chr(34)+WinVer("OS")+chr(34)+" 环境,安装失败。"+chr(10)+chr(10)+ _
"此程序可用于:"+chr(10)+"1.定时关闭装有 ShutDown 的 Windows 系统。"+chr(10)+ _
"2.倒计时关闭装 ShutDown 的 Windows 系统。"+chr(10)+ "3.立即关闭装有 ShutDown 的 Windows 系统。"+chr(10)+ _
"4.取消误操作 ShutDown 造成系统定时关机。"+chr(10)+ _
"5.取消误操作 ShutDown 造成的倒计时关机。"+chr(10)+"6.取消病毒破坏进程 SVCHOST 造成的倒计时关机。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "安装失败 - "+ InsTitle +" - "+ Copyright, 0 + 48
End If
Set WshShell = Nothing
Set FSO = Nothing
Set Args = Nothing
WScript.Quit(0)
sub alltovbs()
'' 自生成shutdown.exe
end sub |
|