中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 16:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]定时杀进程脚本,网吧工作的朋友可能会用得着 查看 1,993 回复 9
楼 主 [原创]定时杀进程脚本,网吧工作的朋友可能会用得着 发表于 2007-04-29 20:32 ·  中国 浙江 杭州 电信
初级用户
积分 128
发帖 31
注册 2006-10-23 08:05
19年会员
UID 67855
性别 男
状态 离线
你的网吧是不是经常有顾客看PP,下迅雷,听酷狗,把一个本来就风雨飘摇的网络搞得更加动荡?也许你试过诸多方法,也许有效,或许效果不太明显,郁闷之际,不妨再看看下面的东东,或许也是一种思路?

部份代码示例,完整文件请参看附件:

'**********************************************************************************************************
'Description: 定时查杀自定义进程,建议设为开机启动
'Author: 十一狼
'Email: 112183883@qq.com
'QQ: 112183883
'WebSite: http://www.w3cg.net/
'**********************************************************************************************************

Dim scriptPath,lenRootPath,listFilePath
Dim sCheck
scriptPath=WScript.ScriptFullName
lenRootPath=Left(scriptPath,InStrRev(scriptPath,"\"))
listFilePath=lenRootPath & "list.txt" '设置进程黑名单文件名称
sCheck=10 '设定间隔多少秒钟扫描一次进程
Do
Call CheckList(listFilePath)
WScript.Sleep sCheck*1000
Loop

Sub CheckList(listFilePath)
On Error Resume Next
Dim Fso,listFile
Dim KeyWord,processKey,pathKey,TipStr
Set Fso=CreateObject("Scripting.FileSystemObject")
If Fso.FileExists(listFilePath) Then
Set listFile=Fso.OpenTextFile(listFilePath,1,0)
Do While Not listFile.AtEndOfStream
KeyWord=listFile.ReadLine
If KeyWord<>"" And Left(KeyWord,1)<>"'" Then
KeyWord=Split(KeyWord,"|")
If UBound(KeyWord)>1 Then
processKey=Trim(KeyWord(0))
pathKey=Trim(KeyWord(1))
Tipstr=Trim(KeyWord(2))
Call ProcessKiller(processKey,TipStr)
If pathKey<>"" Then Call ProcessKiller(pathKey,TipStr)
End If
End If
If Err Then Err.Clear
Loop
Set listFile=Nothing
Else
WScript.Quit
End If
Set Fso=Nothing
End Sub

Sub ProcessKiller(callstr,Tstr)
On Error Resume Next
Dim WMI,objProcess,Process
Dim MsgStr
Dim isKilled
isKilled=False
Set WMI=GetObject("WinMgmts:")
Set Process=WMI.InstancesOf("Win32_Process")
For Each objProcess In Process
If InStr(callstr,".")>0 Then
If objProcess.name=callstr Then
objProcess.Terminate
isKilled=True
End If
Else
If InStr(objProcess.ExecutablePath,callstr)>0 Then
objProcess.Terminate
isKilled=True
End If
End If
If Err Then Err.Clear
Next
Set Process=Nothing
Set WMI=Nothing
MsgStr="对不起,为了营造一个良好的网络环境,本网吧禁止运行以下程序:" & vbCrLf & vbCrLf
MsgStr=MsgStr & " - " & Tstr & vbCrLf & vbCrLf & "敬请广大顾客朋友理解并配合,谢谢!"
If isKilled=True Then MsgBox MsgStr
End Sub


最后说下,这种方法对于一般的网民有效,如果遇到内行的人,估计还是一眼就能看穿我们玩的这个把戏了,不过内行的人又有多少人到网吧闲混呢?呵呵。还有一个进程的黑名单列表,如果文件名改了,请在脚本中重新设置文件名,设置的地方见程序注释。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ysc +1 2007-07-08 14:51
附件
ProcessKiller.rar (1.68 KiB, 下载次数: 224)
2 发表于 2007-04-29 21:11 ·  中国 广东 东莞 电信
初级用户
积分 107
发帖 48
注册 2006-11-30 12:06
19年会员
UID 72174
性别 男
状态 离线
好东东,顶一个!
3 强贴 发表于 2007-05-02 11:29 ·  中国 山西 太原 电信
新手上路
积分 2
发帖 1
注册 2007-05-02 09:31
19年会员
UID 87252
性别 男
状态 离线
顶顶顶顶顶
4 发表于 2007-05-26 17:22 ·  中国 广东 东莞 博路电信科技公司
初级用户
积分 23
发帖 12
注册 2006-09-05 05:40
19年会员
UID 61879
状态 离线
dddd
5 发表于 2007-07-08 06:31 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 26
发帖 11
注册 2007-05-09 18:13
19年会员
UID 87982
性别 男
状态 离线
還好啦
6 发表于 2007-07-08 14:30 ·  中国 河南 洛阳 联通
新手上路
积分 6
发帖 3
注册 2007-07-08 13:56
19年会员
UID 93455
性别 男
状态 离线
b不错
7 发表于 2007-07-25 21:48 ·  中国 海南 海口 电信
新手上路
积分 8
发帖 4
注册 2006-02-16 11:19
20年会员
UID 50449
状态 离线
呵呵不错的喜欢顶个的~
8 发表于 2007-07-25 21:59 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
用Terminate
来结束进程不是很好,有些是结束不掉的,如打印机的进程等。
9 好东东,是VB的?可惜我还看不懂 发表于 2007-07-25 22:16 ·  中国 广西 钦州 灵山县 电信
初级用户
积分 75
发帖 36
注册 2007-05-11 10:12
19年会员
UID 88144
性别 男
状态 离线
好东东,是VB的?可惜我还看不懂,但还是谢了!!
10 发表于 2007-11-30 22:41 ·  中国 广东 东莞 电信
初级用户
积分 31
发帖 16
注册 2006-12-19 15:55
19年会员
UID 73967
性别 男
状态 离线
不错,谢谢了
论坛跳转: