中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 06:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 系统关机管理→VBS版 查看 2,745 回复 16
楼 主 系统关机管理→VBS版 发表于 2007-03-17 05:01 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
其实这个东西是中了一次病毒后才想到要做的,那病毒一直出现60秒倒计时关机,让你连查找分析它得机会也没有,为了省去键盘输入的过程,做成了热键,也方便了不知道命令行用法的人快速取消倒计时关机。
出现倒计时关机窗口时按:Ctrl+Alt+↑立即取消倒计时关机。

其他使用方法不做说明了,看图吧。

[ Last edited by baomaboy on 2007-3-17 at 01:22 PM ]
附件
Manage_WinPower.rar (31.43 KiB, 下载次数: 105)
1.GIF
3.GIF
2 发表于 2007-03-17 05:15 ·  中国 浙江 宁波 电信
中级用户
★★
积分 385
发帖 156
注册 2007-01-19 02:32
19年会员
UID 76955
性别 男
状态 离线
能帖下源码给学习吗??
3 发表于 2007-03-17 05:21 ·  中国 广东 东莞 电信
初级用户
积分 107
发帖 48
注册 2006-11-30 12:06
19年会员
UID 72174
性别 男
状态 离线
Originally posted by heicai at 2007-3-16 04:15 PM:
能帖下源码给学习吗??





楼主有发附件!
4 发表于 2007-03-17 05:24 ·  中国 浙江 宁波 电信
中级用户
★★
积分 385
发帖 156
注册 2007-01-19 02:32
19年会员
UID 76955
性别 男
状态 离线
Originally posted by ieutk at 2007-3-16 04:21 PM:





楼主有发附件!
里面好多类似乱码
5 发表于 2007-04-13 14:12 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线

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

ÿ

[ Last edited by baomaboy on 2008-3-24 at 10:05 PM ]
6 晕倒~! 发表于 2007-06-13 19:06 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 15
发帖 7
注册 2006-06-23 13:36
20年会员
UID 57456
状态 离线
是不是我真的太垃圾了,那么多的代码,能看懂的不到千之一..
7 发表于 2007-06-13 19:13 ·  中国 广东 广州 鹏博士宽带
初级用户
★★
积分 176
发帖 78
注册 2007-04-15 10:53
19年会员
UID 85268
性别 男
状态 离线
向楼主致敬!!
辛苦做东西出来,还把源码拿出来供大家学习。
榜样!
PS:顺便说几句,以前那**科技的作品都是你发的哈,能不能也把源码拿出来学习学习嘛。。
8 发表于 2007-06-13 19:35 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
shutdown -a就取消了啊
9 发表于 2007-06-13 23:12 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
是的 如果你只是想 定时关机 at Time ShutDown -s 就行了啊

如果你想 做个快捷键,创建个快捷方式,在右键属性里自己设就好了,

如果你不学无术只是贪玩的话可以考虑看看^_^
10 发表于 2007-06-13 23:13 ·  中国 江苏 南京 电信
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
Originally posted by Vampire at 2007-6-13 19:13:
向楼主致敬!!
辛苦做东西出来,还把源码拿出来供大家学习。
榜样!
PS:顺便说几句,以前那**科技的作品都是你发的哈,能不能也把源码拿出来学习学习嘛。。


没什么可看的,一堆垃圾而已。。。
11 发表于 2007-06-13 23:50 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 906
发帖 346
注册 2006-07-10 09:58
20年会员
UID 58334
性别 男
状态 离线
baomaboy又出新作品了,支持下
12 发表于 2007-06-15 01:49 ·  中国 北京 北京京宽网络科技有限公司
新手上路
积分 2
发帖 1
注册 2006-06-08 19:25
20年会员
UID 56757
状态 离线
vbs代码编辑器及学习资料推荐
13 发表于 2007-06-16 15:06 ·  IANA 局域网IP(Private-Use)
新手上路
积分 16
发帖 8
注册 2007-06-04 21:57
19年会员
UID 90264
性别 男
状态 离线
看不明白,好好学习一下
14 发表于 2007-06-16 15:20 ·  中国 新疆 乌鲁木齐 天山区 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
几天不来baoma兄又出新大作了,小弟最近在研究C,呵呵,所以很少来这里逛了,每次上来都能看到baomaboy的新作
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
15 发表于 2007-06-16 16:38 ·  中国 湖北 武汉 电信
中级用户
★★
积分 301
发帖 135
注册 2007-05-15 16:49
19年会员
UID 88615
性别 男
状态 离线
编程之路,越来越长,弥长弥精,弥精弥长,
由于我还是菜鸟,所以现在完全看懂是不行的,完全看懂了是要得几天的,写出来了豆腐也就能砸死人的
还有什么话要说,还有多少泪要流,我对baomaboy已死心塌地的五体投地了啊~~~!
论坛跳转: