QQ反骚扰开发笔记
点评:呆在家里上网聊天真的不是件好事。每天打开QQ,迎接我的是一系列广告国庆节黄金周,甚至广告。(:无奈,打开Visual C++,开始我的防骚扰的方式。
首先,我面临的问题是:QQ上有几种广告。我能做些什么来消除它们呢
呆在家里上网聊天真的不是件愉快的事。每一天,打开QQ给我一串广告国庆节黄金周,甚至广告。(:
无奈,打开Visual C++,开始我的防骚扰的方式。
首先,我面临的问题是:QQ上有几种广告。我能做些什么来消除它们呢
这个问题的前半部分是很好的答案,我相信所有的Q的朋友都知道,有三种类型的广告:一是QQ系统消息弹出的Flash广告,二是Flash广告弹出,直接,而第三个是出现在系统广播的形式文字广告。
对于问题的后半部分,我给出的答案是,对应于表单的广告上有一个相应的按钮,可以关闭并单击。
不,这么简单吗也许你得问问。
是的,但我的意思是,让我的QQ骚扰帮助我点击这些按钮,也就是说,在获得这些按钮的句柄后,单击按钮发送一条消息,如下代码所示:
SendMessage(hbutton,bm_click,0, 0);
也许有些朋友会问,你为什么不直接擦掉对话框呢:
EndDialog(hdialog,真的);
好问!具体原因是&hellip,&hellip,呵呵,我不知道,但我可以告诉你,你可以改变我的代码,上面的句子,这可能不是最理想的,因为我尝试了。此外,还有很多共享软件点击称为点击装置那是事实如果我们只是摧毁这个窗口,我们可能会失去一些系统资源的占用的窗口。相比之下,使用单击方法让对话框调用回调函数本身的回调部分来消除对话框仍然比较安全。
还有一个问题:什么时候会被点击或者,它怎么知道什么时候点击
我的回答是:保持警惕。
是的,这是我在软件自述说;定时器技术这很简单,只要将下面的代码添加到对话框的初始化:
SetTimer(hDlg,1, 100,null);
第一个参数是需要处理对话框来设置定时器,MFC朋友的使用可以省略这个参数;第二个参数是id定时器;第三是定时器事件触发时间间隔(以微妙的单位);第四个参数可以根据回调函数来指定,这里的事件是null。
在这种方式中,初始功能mdash;mdash;实时监控。但当代码是最后加工出口部分的代码,有必要摧毁之前创建的定时器,这是:
KillTimer(hDlg,1);
因为计时器是一种耗费资源的东西,必须在程序结束时销毁它以释放系统资源。
让我先从三种广告窗口入手,找到QQ中的内存。下面的代码我已经从QQ反骚扰的SDK源代码,请使用MFC的朋友做出相应的更改。
内存中有很多窗口,所以QQ骚扰,你怎么知道哪个窗口是QQ的广告窗口把两个或三个窗口,有很多功能很简单;过滤例如系统消息弹出广告,这滤波器;它是在标题;mdash;腾讯QQ和广播系统;关闭按钮。
这样,处理计时器事件时的代码如下所示:
点评:呆在家里上网聊天真的不是件好事。每天打开QQ,迎接我的是一系列广告国庆节黄金周,甚至广告。(:
无奈,打开Visual C++,开始我的防骚扰的方式。
首先,我面临的问题是:QQ上有几种广告。我能做些什么来消除它们呢
>窗口hwndcap,hbtnclose1; / /窗口句柄和关闭按钮处理;
hwndcap = FindWindow(null,QQ广播系统); / /搜索窗口
如果(hwndcap!=如果有一个窗口
{
hbtnclose1 = FindWindowEx(hwndcap,null,按钮015
如果(hbtnclose1!=如果这个按钮也存在,确定基本的QQ广告
{
EnableWindow(hbtnclose1,true); / /按钮
SendMessage(hbtnclose1,bm_click,0, 0); / /点击发送消息
}
}
在这里,我想解释一下对按钮起作用的那一行。在早期版本的QQ中(比如我目前在家使用的版本),Flash广告是必要的。关闭了,按钮就生效了,所以我必须找到一个帖子,即使它可以工作,关闭窗口。当然,对于一个较新版本的QQ,这条线可以完全删除。
对于自动弹出的Flash广告,它上面容易。由于它采用图形界面,它不像我称之为从外面;过滤器;它需要从其他软件的帮助,我使用的软件是由我写的观众对话框;试验;v2.svtf.00版本,这是一个工具,可以让窗口标题、窗口和窗口类的名字瞬间。我得到了这个广告的在它的帮助下;关闭按钮的标题;mdash;mdash;CLOSE所以我的代码如下:
hWnd hwndno,hbtnclose2;
hwndno = FindWindowEx(null,null,32770 #
做 / /无标题对话框中发现多次找到CLOSE这个按钮
{
hbtnclose2 = FindWindowEx(hwndno,null,按钮015
如果(hbtnclose2!= null)
断开;如果发现按钮已不流通
hwndno = FindWindowEx(null,hwndno,32770 #
}而(hwndno!= NULL);
如果(hbtnclose2!= null)
{
EnableWindow(hbtnclose2,true); / /同上,请自行删除不需要的访问
SendMessage(hbtnclose2,bm_click,0, 0);
}
点评:呆在家里上网聊天真的不是件好事。每天打开QQ,迎接我的是一系列广告国庆节黄金周,甚至广告。(:
无奈,打开Visual C++,开始我的防骚扰的方式。
首先,我面临的问题是:QQ上有几种广告。我能做些什么来消除它们呢
这样,广告也被我征服了。事实上,最令我担心的是第三种广告mdash;mdash;QQ是10000。我叫它QQ是公元10000年;这是因为我的过滤这是10000这类广告用户把你的好友名单系统信息是一样的,所以重要的信息将由粗心过滤掉。所以我选择了10000作为我的过滤器。
我首先从对话框的外观,写一个控制用户的QQ号码是只读的(es_readonly)编辑框(编辑),然后仿照代码和编译运行,发现无效!所以,QQ防骚扰的版本号是1.svof.02,消除共两个QQ广告。所以我似乎很沮丧。但是有一天,当我用eXeScope学习另一个软件,我突然想出了用eXeScope研究QQ主程序的方法。然而,我的成功没有成功。
我打开QQ的主程序,发现对话框和发现了大量的静态(静态文本标签在Delphi和C++ Builder)!天啊,我为什么不认为那是一种改变了的静态风格呢所以三到五,除了两个,我的最后一段代码出来了。
hWnd hwndyw,hbtnclose3,hedit;
hwndyw = FindWindow(null,系统信息);
如果(hwndyw!= null)
{
hbtnclose3 = FindWindowEx(hwndyw,null,按钮015
hedit = FindWindowEx(hwndyw,null,静
如果(hedit!= null hbtnclose3!= null)
SendMessage(hbtnclose3,bm_click,0, 0);
}
你可以看到,我的代码,识别静态的处理仍然是所谓hedit,这是由于我以前的误判。
Ldquo QQ ; anti harassment; v1.SVOF.12 core code is here, but there's a point, is my ldquo QQ; anti harassment ; there is a little Bug.Have you noticed that在第三部分,如果标题是10000个标题的静态文本,它去返回按钮发送一个消息。这也意味着,如果一个昵称是10000的网友和你是朋友,那么系统信息可以被过滤出来。到这是判断解决方式;添加到朋友按钮是否的风格是可见的(ws_visible);如果它是不可见的,它可以返回返回按钮发送单击消息。但是,因为我个人的时间问题,这段代码没有能够实现的,它是给每个人,哈哈。
后记:骚扰说再见
QQ;反骚扰;我的VC SDK登场,我开始写去年十月的软件,在他们经历过很多次的升级,最终版本;mdash;mdash;V1.37;现在,我终于决定停止。
原因很简单,QQ的版本升级,和广告数量的增加,这就决定了我要升级该软件一次又一次。但现在网上关于防骚扰;有很多的技巧,所以我认为我做的是多此一举,因为我的目的-- mdash;mdash;mdash;学习;到达,然后升级要下去毫无意义。
我仍然感谢很多网友,感谢他们对我的信任和对我的关心,我决定返回第一个源代码倾囊相授,而不再是演示版的核心代码;我以前的代码是用C++写的,包括我的复选框封装类型,现在看来,很难看,以免误导你的带来的副作用,所以我花了一些时间,它将使用纯C和重写它,希望能够满足早期学者喜欢我的需要。顺便说一句,这几乎是qq2003 V1.37无能为力。另外,Visual Studio的自己工具Spy++是比我的对话;观众;功能更强大。
好了,再见了,我的QQ反骚扰;