用什么方法可以消灭qq广告?彻底消灭qq广告的方法
呆在家中上网聊天实在不是一件惬意的事:每一天打开QQ,迎接我的都是一串一串的广告……国庆黄金周,连广告也不放过!:(
无奈,打开Visual C++,开始了我的“反骚扰”之路。
首先我面对的问题是:QQ一共有几种广告,我能用什么方法消灭它们?
前半个问题很好回答,相信所有常Q的朋友都知道。QQ的广告有三种:第一种是在系统消息中的弹出式Flash广告,第二种是直接弹出的Flash广告(窗体非常花哨),第三种是以系统广播形式出现的文字式广告。
对于后半个问题,我给出的答案是:在广告对应的窗体上,都有相应的按钮可以将其关闭,点击即可。
不是吧,就这么简单?也许你要这么问。
是的,不过我是说,让我的“QQ反骚扰”帮助我点击这些按钮。即在取得这些按钮的句柄后,向该按钮发送一个单击消息,如下代码所示:
SendMessage( hButton, BM_CLICK, 0, 0 );
也许会有朋友问,为什么不直接将对话框消灭掉,即:
EndDialog( hDialog, TRUE );
问得好!具体原因是……呵呵,我也不知道:)但我能告诉你的是,你可以将我的代码换成上面那一句,效果可能不会很理想的,因为我试过。另外,有很多的共享软件点击器之所以叫“点击器”就是这个道理。单单消灭这个窗口,很可能由该窗口占用的一些系统资源就会流失,相比之下,还是使用点击的方法,让对话框自己调用它回调函数中的退出部分来消灭对话框,岂不是更加安全?
还有一个问题:什么时候让它去点击呢?或者说,它怎么知道什么时候去点击呢?
我的答案是:时刻监视。
是了,这就是我在软件的Readme.txt中所说的“计时器技术”了。很简单,只需在对话框的初始化中加入如下代码:
SetTimer( hDlg, 1, 100, NULL );
第一个参数是需要设置计时器的对话框句柄,使用MFC的朋友可以省略这个参数;第二个参数是计时器的ID;第三个是计时器事件的触发时间间隔(以微妙为单位);第四个参数可以指定响应事件的回调函数,这里用不着,为NULL。
这样,便可以实现初步的功能——时刻监视了。但是在最后处理程序退出部分的代码时,一定要将先前创建的计时器销毁,即:
KillTimer( hDlg, 1 );
因为计时器是一个耗费系统资源的东西,所以在程序结束的时候,必须销毁它以释放系统资源。
下面我来开始介绍如何来在内存中寻找QQ的三种广告窗口。以下的代码我均摘自“QQ反骚扰”的SDK源代码,请使用MFC的朋友们自行做出相应的改动。
在内存中有很多窗口,那么“QQ反骚扰”又是如何知道哪一个窗口是QQ的广告窗口呢?很简单,从窗口所具备的众多特征中取出两到三个来作为“过滤器”即可。比如对于系统消息的弹出式广告,它的“过滤器”就是它的标题——“腾讯QQ系统广播”和它的“关闭”按钮。
这样,在处理计时器事件时的代码如下:
>HWND hWndCap, hBtnClose1; // 窗口句柄和“关闭”按钮句柄
hWndCap = FindWindow( NULL, "腾讯QQ系统广播" ); // 查找窗口
if ( hWndCap != NULL ) // 如果窗口存在
{
hBtnClose1 = FindWindowEx( hWndCap, NULL, "Button", "关闭" ); // 继续过滤,找“关闭”按钮
if ( hBtnClose1 != NULL ) // 如果这个按钮也存在,则基本可以确定是QQ的广告了
{
EnableWindow( hBtnClose1, TRUE ); // 将按钮生效
SendMessage( hBtnClose1, BM_CLICK, 0, 0 ); // 发送单击消息
}
}
在此我要说明一下将按钮生效的那行代码。QQ的早期版本中(譬如我目前在家使用的版本),Flash广告是必须得看完一遍后,“关闭”按钮才会生效,所以我必须在找到后立即使它生效以关闭窗口。当然,对于较新版本的QQ来说,完全可以去掉这一行。
对于自动弹出的Flash广告,就没有上面的那个那么容易了。因为它采用的是图形界面,从外表看是得不到我所谓的“过滤器”的,这就需要其它软件的帮助了。我使用的软件是我写的“对话框查看器”测试版v2.SVTF.00,这是一个能够即时获取窗口标题、窗口ID和窗口类名的工具。我在它的帮助下得到了这种广告的“关闭”按钮的标题——“CLOSE”。于是我的代码如下:
HWND hWndNo, hBtnClose2;
hWndNo = FindWindowEx( NULL, NULL, "#32770", "" ); // #32770是对话框的类名
do // 在找到的无标题对话框中反复查找“CLOSE”这个按钮
{
hBtnClose2 = FindWindowEx( hWndNo, NULL, "Button", "CLOSE" );
if ( hBtnClose2 != NULL )
break; // 若找到按钮则跳出循环
hWndNo = FindWindowEx( NULL, hWndNo, "#32770", "" ); // 否则继续查找无标题窗口
} while ( hWndNo != NULL );
if ( hBtnClose2 != NULL )
{
EnableWindow( hBtnClose2, TRUE ); // 同上,若不需要请将此行自行删除
SendMessage( hBtnClose2, BM_CLICK, 0, 0 );
}
就这样,这个广告也被我征服了。其实最困扰我的是第三种广告——QQ号为10000的广告。我之所以把它称为“QQ号为10000的广告”,就是因为我的“过滤器”就是“10000”。这种广告和“用户????????将你列入好友名单”的系统信息是一样的,所以一不小心就会将重要的信息过滤掉。于是我选中了“10000”作为我的过滤器。
起先我从对话框的外观上判断,写有用户QQ号的控件是一个只读(ES_READONLY)的编辑框(Edit),后来我如法炮制代码并编译运行,发现无效!于是“QQ反骚扰”的版本号定为1.SVOF.02,共能消除两种的QQ广告。于是我似乎消沉了。不过偶然的一天,在我使用eXeScope研究另一个软件的时候,我才突然想出了用eXeScope这位专家来研究一下QQ的主程序的办法,然而能否成功,我心里没底。
我打开QQ的主程序,找到那个对话框,发现有很多的Static(静态文本,Delphi及C++ Builder中的Label)!我的天,我怎么没有想到那是改变了风格的Static呢?于是乎三下五除二,我的最后一段代码也问世了:
HWND hWndYw, hBtnClose3, hEdit;
hWndYw = FindWindow( NULL,"系统消息" );
if ( hWndYw != NULL )
{
hBtnClose3 = FindWindowEx( hWndYw, NULL, "Button", "返回" );
hEdit = FindWindowEx( hWndYw, NULL, "Static", "10000" );
if ( hEdit != NULL && hBtnClose3 != NULL )
SendMessage( hBtnClose3, BM_CLICK, 0, 0 );
}
你可以看到,在我的代码中,标识那个Static的句柄依然叫hEdit,那是因为我先前的判断失误。
“QQ反骚扰”v1.SVOF.12的核心代码就讲到这里了,不过还有一点,就是我的“QQ反骚扰”中存在着一个不大不小的Bug。大家注意到了吗?第三段代码中,如果碰到标题是10000的静态文本,就向“返回”按钮发送单击消息。这也就意味着如果一个昵称是10000的网友加你为好友,那么他的这条系统信息同样有可能被过滤掉。解决的办法是判断“加为好友”按钮的风格是否为可见(WS_VISIBLE),若为不可见,则可以向“返回”按钮发送单击消息了。但是由于我个人时间的问题,这段代码还没有来得及实现,就交给大家了,呵呵。
后记:和“反骚扰”说再见
“QQ反骚扰”是我的VC SDK处女作,我从去年10月份开始写这个软件,之后又经历了很多次升级,到这个“最终版本”——v1.37为止,我终于决定停手了。
原因很简单,QQ的版本不断升级,广告的花样也越来越多,这就决定了我不得不一次次地升级这个软件。而现在网上关于“反骚扰”的技巧又有很多,所以我觉得我这么做就有点多此一举了。既然我的目的——学习——达到了,那么再“升级”下去也就失去意义了。
我仍然感谢很多网友,感谢他们对我的信任和对我的关心。我无以回报,决定将这个处女作的源代码倾囊相授,而不再是“核心代码演示版”。是前我的代码是用C++写成的,主要包括了我封装的CheckBox类,现在看来那个类十分丑陋,唯恐给诸位带来误导的副作用,于是我花了一些时间,将它用纯C重写了一遍,希望能够满足和我一样的初学者的需要。顺便说一句,这个v1.37几乎对QQ2003无能为力。还有,Visual Studio中自带的工具Spy++比我的“对话框查看器”功能要强得多。
OK,那么再见了,我的“QQ反骚扰”。
网站入侵有什么技巧?要先查看源文件
如果是html格式的站我们先打开网站,然后单击鼠标右键 按查看源文件-编辑-查找 ,输入asp 看有没有网站ASP文件或ASP带参数1:注入点先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾
详情2018-01-28 13:36:54责编:llp 来源:驱动管家搜索关键字如何入侵?怎么入侵动网论坛?
上传 upload_Photo asp?PhotoUrlID=3 upload_Photo asp?PhotoUrlID=1---------------------------------------------------- 关键字:网站建设公司企业网站管理系统 后缀: admin login as
详情2018-01-29 14:59:08责编:llp 来源:驱动管家arp是什么?arp双向欺骗和单向欺骗的原理和区别
ARP(地址解析协议)是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDI IP网络中使用。本文将为大家详细剖析ARP欺
详情2018-01-23 09:13:47责编:llp 来源:驱动管家玩传世游戏时木马盗号 木马盗号怎么预防?
玩传世已经有一段时间了,以前对木马盗号之类的事情总是听的很多,但是从来没有碰到过,自从玩了传世开始,让小弟我着实领教了一次什么叫木马盗号,那个厉害阿。以至于现在上网都怕怕,怕中招。好废话不说,来分析一下木
详情2018-01-10 17:54:09责编:llp 来源:驱动管家局域网入侵教程 局域网入侵有哪些步骤?
首先申明:1 入侵的范围只包括局域网,如果在学校上,可以入侵整个校园网;2 能入侵的只是存在弱口令(用户名为administrator等,密码为空),并且开了139端口,但没开防火墙的机子。入侵工具:一般要用到三个:NTsc
详情2018-01-18 14:39:54责编:llp 来源:驱动管家windows密码怎么破解?这款密码清除软件可以轻松做到
当你在使用电脑时,不小心将管理员登录密码忘记了,怎么办呢?虽然网上和各IT杂志介绍了很多种破解管理员登录密码的方法,但操作起来都比较麻烦,并且针对不同的系统须要用不同的破解方法。例如,用破解Winodws 2
详情2018-01-30 09:59:15责编:llp 来源:驱动管家手机木马可以盗取网银是因为验证码短信?
360手机安全中心接到大量用户举报,称其遭受短信诈骗,被骗金额多数以万计。最终都是因为用户中招后,验证码被木马偷偷转发到不法分子手机中。
详情2018-01-17 17:08:08责编:llp 来源:驱动管家怎么提升服务器安全等级?这里有安全十五招
安全十五招,具体介绍请看下文。1 经常更改系统管理员密码。---->且密码最好是大小写都有2 定期更新系统补丁。---->开启自动更新,并设定到晚上重启。3 检查系统是否多出超级管理员,检查是否有帐号被克隆在“开
详情2018-01-25 15:29:57责编:llp 来源:驱动管家Windows2000开放端口扫描只需一个dos命令
不需要任何工具,dos命令扫描一个网段的全部端口!在win2000下开一个dos窗口,然后执行for l %a in (1,1,254) do start min low telnet 192 168 0 %a 3389这样192 168 0 x这个段的所有开放3389端口得
详情2018-01-19 16:58:30责编:llp 来源:驱动管家qq空间如何挂马?qq空间挂马的原理是什么?
今天我来跟大家谈论一下关于QQ空间挂马的原理,我试了一下,成功率占80%。有好多人都问我怎么样才可以做到肉鸡成群,我想了好久,觉得QQ空间挂马可以实现这个。所以我试做了一下,竟然成功了!~~那我就想大家介绍
详情2018-01-29 17:56:19责编:llp 来源:驱动管家
- iebook超级精灵怎么给电子杂志设置背景音乐?
- 函数查询怎么做?怎样在Access上查询数据?
- 关于摄像机各类参数最详细的一些介绍
- 人像镜头哪款值得入手?人像镜头的介绍推荐
- 屏保设置方法:win7系统怎么设置屏保
- 电脑锁屏怎么设置?win7电脑设置锁屏的方法
- 三星galaxy s4卸载软件的方法是什么?三星galaxy s4卸载软件的步骤
- vivo x3有多薄?看看vivo x3的真机照就知道了
- 怎样把jpg转换成pdf文档?jpg转换成pdf的方法是什么?
- 这些成双花指令自由组合可以达到免杀效果 过瑞星表面的查杀方法
- 紫光拼音输入法有哪些功能特点?紫光拼音输入法使用方法
- 梦畅电脑闹钟是一款什么样的软件?梦畅电脑闹钟可以关机使用吗?
- p2p网络摄像机出现用户和密码错误的故障怎么办
- 什么佳能数码摄像机最好用?佳能数码摄像机推荐
- 教你如何在xp系统中重置网络命令
- win10分辨率设置:电脑设置屏幕分辨率的方法
- vivo x6s多少钱?vivo x6s的配置参数
- galaxy s4 i9500怎么开多窗口?galaxy s4 i9500设置多窗口的方法
- word文档需要快速定位时该怎么操作?在word文档中定位的方法是什么?
- 什么是影子账号?怎么发现影子账号?