查杀进程 VBS

今天一位狐朋狗友说他老婆玩游戏入迷了,想让她的游戏运行不了。

VBS短小精干用来干这种卑劣的事,最合适不过:(注释已经很详细了,就不多说了)


On Error Resume Next
'-----------------初始化,可以自定义的数据后都有说明,要重新启动本程序才能生效“wscript.exe”----------------------
Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell") 'VBS对象
Dim listFilePath,ProcessList,CheckPeriod,sdt,ndt,wst,wnt
listFilePath =  "C:\WINDOWS\list.txt"  ' 这个引号里写上存放进程名称的txt文件(把你要杀的程序写在这 TXT 文件中,每行一个)
CheckPeriod = 3 '这里是检查周期,单位为秒(每隔多少秒扫描一次)
MsgCheck = 1 '如果为零不弹出消息框,否则就弹出
Msgtitles = "系统提示" '消息框标题
MsgContext = "未知错误,可能文件已损坏。" '消息框正文
MsgButtons = 48 '弹出框的界面(请参考 “Msgbox界面参数”文件)
MsgTimes = 5 '弹出窗口倒记时
'------这下面的四个是允许玩游戏的时间段--------
sdt = "10:00:00" '星期天,开始 
ndt = "21:30:00" '星期天,结束 
wst = "10:00:00" '平时开始 
wnt = "23:20:00" '平时结束 
'-----------定义杀进程SUB------------------------------------------ 
sub Close_Process(ProcessName) 
On Error Resume Next 
for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_ '循环进程 
if Ucase(ps.name)=Ucase(ProcessName) then 
    ps.terminate 
    '弹出消息框
    if MsgCheck <> 0 then
	BtnCode = WshShell.Popup(MsgContext, MsgTimes, Msgtitles, MsgButtons)
    end if 
end if 
next 
end sub 
'--------------读取进程列表,存入数组-------------------
sub Get_list(FilePath) 
On Error Resume Next 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(FilePath , 1)


Do Until objTextFile.AtEndOfStream
	strNextLine = objTextFile.Readline
	mylist = mylist & strNextLine & ","
Loop
ProcessList = Split(mylist, ",")
end sub 
'-------------时间检查函数--如果要关就反回true--------------------------
Function mytime()
'如果星期天:
if  Weekday(now) = 1 and Now > CDate(Date & " " & sdt) and Now <  CDate(Date & " " & ndt) then
 mytime = false
Exit Function
end if

'如果平时:
if  Weekday(now) <> 1 and Now > CDate(Date & " " & wst) and Now <  CDate(Date & " " & wnt) then
 mytime = false
Exit Function
end if

'在不允许的时间段:
mytime = true

End Function
'--------------开始循环检查-------------------
Do 
if mytime then
    '读取列表,以检查TXT文中是否加入了新的数据
     Get_list(listFilePath)

    '如果列表中有写进程名称就处理:
    if(Ubound(ProcessList)<>0) then
     For i = 0 to Ubound(ProcessList)-1
      Close_Process(ProcessList(i))
     Next
    end if
end if

'隔三秒再检查一次
WScript.Sleep 1000 * CheckPeriod
Loop 


2011-06-19
查杀进程 v1.2
因为最近系统总会出很多conime.exe,暂时也没空重装,于是改了一下这个VBS用来杀掉它们。
1、加了个 “进程 允许的时间段” 的判断。
2、加了个 '查杀完成,是否退出?如果要实时查杀,请注释下面的这段语句
那个时间段判断的的代码应该可以优化一下,暂时不管了,动画要紧。

On Error Resume Next
'-----------------初始化,可以自定义的数据后都有说明,要重新启动本程序才能生效“wscript.exe”----------------------
Dim WshShell, BtnCode
Dim checkTime '是否在指定时间段才查杀?
Set WshShell = WScript.CreateObject("WScript.Shell") 'VBS对象
Set fso = CreateObject("Scripting.FileSystemObject")
Dim listFilePath,ProcessList,CheckPeriod,sdt,ndt,wst,wnt,Current_path
Current_path = fso.GetParentFolderName(Wscript.ScriptFullName)'获取当前路径
listFilePath =  Current_path + "\list.txt"  '默认进程列表在当前文件夹下。
CheckPeriod = 3 '这里是检查周期,单位为秒(每隔多少秒扫描一次)
MsgCheck = 0 '如果为零不弹出消息框,否则就弹出
Msgtitles = "系统提示" '消息框标题
MsgContext = "未知错误,可能文件已损坏。" '消息框正文
MsgButtons = 48 '弹出框的界面(请参考 “Msgbox界面参数”文件)
MsgTimes = 5 '弹出窗口倒记时
'------这下面的四个是允许玩游戏的时间段--------
checkTime  = false
sdt = "10:00:00" '星期天,开始 
ndt = "21:30:00" '星期天,结束 
wst = "10:00:00" '平时开始 
wnt = "23:20:00" '平时结束 
'-----------定义杀进程SUB------------------------------------------ 
sub Close_Process(ProcessName) 
On Error Resume Next 
for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_ '循环进程 
if Ucase(ps.name)=Ucase(ProcessName) then 
    ps.terminate 
    '弹出消息框
    if MsgCheck <> 0 then
	BtnCode = WshShell.Popup(MsgContext, MsgTimes, Msgtitles, MsgButtons)
    end if 
end if 
next 
end sub 
'--------------读取进程列表,存入数组-------------------
sub Get_list(FilePath) 
On Error Resume Next 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(FilePath , 1)


Do Until objTextFile.AtEndOfStream
	strNextLine = objTextFile.Readline
	mylist = mylist & strNextLine & ","
Loop
ProcessList = Split(mylist, ",")
end sub 
'-------------时间检查函数--如果要关就反回true--------------------------
Function mytime()


'如果星期天:
if  Weekday(now) = 1 and Now > CDate(Date & " " & sdt) and Now <  CDate(Date & " " & ndt) then
 mytime = false
Exit Function
end if

'如果平时:
if  Weekday(now) <> 1 and Now > CDate(Date & " " & wst) and Now <  CDate(Date & " " & wnt) then
 mytime = false
Exit Function
end if

'在不允许的时间段:
mytime = true

End Function
'--------------开始循环检查-------------------
Do 
'用于限制进程在允许的时间段内运行
'否则,直接统统杀掉
if checkTime=True And mytime Then
	    '读取列表,以检查TXT文中是否加入了新的数据
	     Get_list(listFilePath)
	
	    '如果列表中有写进程名称就处理:
	    if(Ubound(ProcessList)<>0) then
	     For i = 0 to Ubound(ProcessList)-1
	      Close_Process(ProcessList(i))
	     Next
	    end if
Else
		'读取列表,以检查TXT文中是否加入了新的数据
	     Get_list(listFilePath)
	
	    '如果列表中有写进程名称就处理:
	    if(Ubound(ProcessList)<>0) then
	     For i = 0 to Ubound(ProcessList)-1
	      Close_Process(ProcessList(i))
	     Next
	    end if
end if


'查杀完成,是否退出?如果要实时查杀,请注释下面的这段语句
BtnCode = WshShell.Popup("如果‘否’,1秒钟后,再查杀一遍", 10, "查杀完成,是否退出?", 4 )
If BtnCode = 6 Then
WScript.Quit 
end If

'隔三秒再检查一次
WScript.Sleep 1000 * CheckPeriod
Loop 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑虾

多情黯叹痴情癫。情癫苦笑多情难

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值