发新话题
打印

[QQ技巧] 利用脚本禁用QQ使用

本主题由 冬天无雪 于 2008-11-2 11:16 分类

利用脚本禁用QQ使用

QQ现在已成为上网一族的必备工具,它给网友之间的相互交流带来了很大的方便。然而问题也随之而来。在宿舍里,你的电脑被别人占着聊QQ,你是不是感觉十分不爽。特别是碰到某些“神聊手”,呵呵,你只有哭得份了。在很多公司里,聊QQ也是让Boss很头疼的事。于是,大家八仙过海,各显神通,禁用QQ的方法也如雨后春笋般。目前,网上主要流行几种方法:防火墙禁止端口,改文件属性,编辑Hosts文件,删除文件等。但是这些方法都有局限性,你总不能把公司里电脑的Hosts文件都编辑了吧。

因此,针对目前这种情况,小生做了一个脚本来禁用QQ,本脚本特点:1,基本不需要第三方软件。2,文件“体积”很小,在笔者的机器上还不到2KB。3,迷惑性很强。4,实用性很广,无论个人还是公司均可。5,操作简单。

所需工具:我们只需要一个命令行杀进程的工具,XP用户就省了这一步,它自带一个工具:Tskill.EXE。2000的用户需要下载一个工具,我使用的是Kill.EXE

本脚本运行后的效果:一旦QQ被启动,立即被杀掉,同时显示如图所示的对话框,呵呵,很像吧,是不是以为是QQ程序出问题了。

下面让我们来了解和我们的程序有关的几个名词。

WMI:Windows管理规范,提供对Windows全面的管理功能。例如日志管理,Windows服务管理,进程管理注册表管理,网络管理,设备驱动程序管理等涉及Windows各个方面。WMI还具有很强的远程控制功能。

类:和面向对象程序设计语言中的类一样,是属于真实、生动事物的虚拟表象。也是我们操作的对象。比如计算机上存在着用来指代所有服务的Win32_Service类。

名称空间:是用来存储一整套类的位置。WMI的名称空间有:root,root\Default,root\Security,root\CIMV2等

WQL:即WMI查询语句。提供了一种精确的方法,以便在WMI名称空间中选择特定的部件。WQL是ANSI SQL(美国国家标准)的一个子集。

WMI事件:表示名称空间,类或实例的变化。

__InstanceCreationEvent:一个WMI系统类,如果生成了Windows事件日志的一个条目,则会创建该系统类的一个对象

TargetInstance:是__InstanceCreationEvent对象的属性,返回一个对象


程序清单:
==========================================================================================================
Option Explicit '强制变量声明
On Error Resume Next '如发生错误,继续执行后续代码

Dim strComputer '变量声明,指定一计算机
Dim objWMIService '声明一个SWbemServices对象的变量,该对象用于连接到本地或远程系统的名称空间
Dim strWQL '声明WQL查询语句
Dim objEventSource '声明Win32_Process类的一个实例,该实例生成了被监控的事件
Dim objEventObject '声明一个代表事件的SWbemObject对象
Dim str1 '声明了对话框的内容
Dim str2 '声明了对话框的内容
Dim str3 '声明了对话框的内容
Dim Content '声明了对话框的内容
Dim Title '声明了对话框的标题
Dim wshshell '声明一个Wshshell的对象


strComputer = "." '指定计算机名,圆点代表本地计算机,你也可在引号中指定远程计算机,但你必须在该计算机上拥有相应权限

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") '创建一个通往WMI服务的连接,将针对该连接的引用保存于objWMIService变量,且指定了一个WMI名称空间--即/root/cimv2名称空间,该名称空间存有Win32_Process类

do '循环进行事件查询

strWQL = "SELECT * " & _
"FROM __InstanceCreationEvent " & _
"WITHIN 1 " & _
"WHERE TargetInstance ISA 'Win32_Process' " & _
"AND TargetInstance.Name = 'QQ.exe'" '对事件产生进行监控的WQL语句,WITHIN 1 子句表示每隔一秒对事件进行查询,以秒为单位。ISA 表示所需监控的对象是Win32_Process类,TargetInstance.Name = 'QQ.exe'表明仅对QQ.EXE进行监控




Set objEventSource = objWMIService.ExecNotificationQuery(strWQL) '调用SWbemServices对象的ExecNotificationQuery()方法运行查询语句,启动监控

Set objEventObject = objEventSource.NextEvent() '使脚本处于暂停状态,直到程序接收到下一个事件

str1 = """0x018f4b79"""&" "&"指令引用的"&" "&"""0x076d5000"""&" "&"内存。该内存不能为"&" "&"""read"""&"。" '事件发生后产生的对话框的内容
str2 = "要终止程序,请单击"&"“"&"确定"&"”"&"。"
str3 = "要调试程序,请单击"&"“"&"取消"&"”"&"。"

Content = Str1 & vbCrLf & vbCrLf & Str2 & vbCrLf & Str3

Title = "QQ.EXE - 应用程序错误" '事件发生后产生的对话框的标题

Set wshshell = CreateObject("WScript.Shell") '调用VBS的CreateObject()方法生成一个WShshell对象

wshshell.run "%COMSPEC% /C cscript KillProcess.vbs QQ.exe",0 '调用Wshshell对象的run()方法运行命令行工具KillProcess.VBS来杀掉QQ.EXE进程。%COMSPEC%环境变量代表CMD.EXE,/C选项使Kill.EXE程序执行完后退出,参数"0"使命令行窗口隐藏

wshshell.Popup Content,,Title,VbCritical+VbOkCancel '调用Wshshell对象的Popop()方法弹出我们伪造的系统对话框

loop '与do语句一起构成循环
`你的电脑?
`呵..
`我的权限!

TOP

怎么用啊?有清单了,用什么编译啊?

TOP

有个后台软件也可以`
但我忘了名字了~
回顾走过的路,充满着荆棘与挑战,虽没有鸟语花香莺歌燕舞,但不缺少人生的色彩.生活的苦难以使我苦不堪言,心中的孤苦如无边的戈壁,望不到尽头;不幸的我在春夏秋冬的轮回中等待!

TOP

看不懂啊。。。汗
〥 ◇侑點尐個性︷ . 佷調怶 ⺌吥薀鍒 ﹎侑榯鍭゛ 還吥講道理 ▽ ﹎..dē⺌︵.ㄚi個.⺗尐吖頭.

TOP

发新话题