中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]定时杀进程脚本,网吧工作的朋友可能会用得着
作者:
标题: [原创]定时杀进程脚本,网吧工作的朋友可能会用得着 上一主题 | 下一主题
112183883
初级用户





积分 128
发帖 31
注册 2006-10-23
状态 离线
『楼 主』:  [原创]定时杀进程脚本,网吧工作的朋友可能会用得着

你的网吧是不是经常有顾客看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-7-8 14:51


附件 1: ProcessKiller.rar (2007-4-29 20:32, 1.68 K,下载次数: 224)


十一狼的网络日志
2007-4-29 20:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ieutk
初级用户




积分 107
发帖 48
注册 2006-11-30
状态 离线
『第 2 楼』:  

好东东,顶一个!

2007-4-29 21:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaogen888
新手上路





积分 2
发帖 1
注册 2007-5-2
状态 离线
『第 3 楼』:  强贴

顶顶顶顶顶

2007-5-2 11:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huyingbin
初级用户





积分 23
发帖 12
注册 2006-9-5
状态 离线
『第 4 楼』:  

dddd

2007-5-26 17:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
08765976
初级用户





积分 26
发帖 11
注册 2007-5-9
状态 离线
『第 5 楼』:  

還好啦

2007-7-8 06:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lpf2008007
新手上路





积分 6
发帖 3
注册 2007-7-8
状态 离线
『第 6 楼』:  

b不错

2007-7-8 14:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhi5252
新手上路





积分 8
发帖 4
注册 2006-2-16
状态 离线
『第 7 楼』:  

呵呵不错的喜欢顶个的~

2007-7-25 21:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  

用Terminate
来结束进程不是很好,有些是结束不掉的,如打印机的进程等。

2007-7-25 21:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gmsx007
初级用户




积分 75
发帖 36
注册 2007-5-11
状态 离线
『第 9 楼』:  好东东,是VB的?可惜我还看不懂

好东东,是VB的?可惜我还看不懂,但还是谢了!!

2007-7-25 22:16
查看资料  发送邮件  发短消息 网志  OICQ (310854777)  编辑帖子  回复  引用回复
hpwsb
初级用户





积分 31
发帖 16
注册 2006-12-19
状态 离线
『第 10 楼』:  

不错,谢谢了

2007-11-30 22:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: