Delphi向QQ2011窗口发送登录消息
2012-01-16 04:17
288 查看
======================================================
注:本文源代码点此下载
======================================================
目前的qq2011版本中,其登陆界面上除了qq号输入框和密码输入框,其他的的按钮都是绘图绘上去的,均无窗口句柄。
qq登录窗口的窗口类为'txguifoundation',窗口标题为'qq2011'。
qq账号输入框的窗口类为'txedit',窗口标题为空,密码输入框的窗口类为'edit',窗口标题是动态的'a~z'。
由于登陆界面的【登录】按钮无窗口句柄,因此无法向按钮发送消息,由此猜想其界面的所有操作均是通过特定消息来操作的。
但是向登录窗口发送wm_lbuttondown和wm_lbuttonup消息来模拟鼠标点击登录按钮的操作无任何反应。
通过spy++监测qq2011登录过程中的消息流发现,其消息基本都是直接发送至登录窗口的,所以逐条查看带有wm_lbuttondown
和wm_lbuttonup消息的地方 ,并发现一组 wm_lbuttondown、 wm_lbuttonup ,查看消息属性发现wm_lbuttondown
消息中的wparam参数为$00000001,lparam参数为$00fd013a,wm_lbuttonup消息的wparam参数为$00000000,lparam参数为$00fd013a。
因此猜想模拟鼠标点击登录按钮的消息中, lparam参数为$00fd013a代表这是个用于登录按钮的wm_lbuttondown或wm_lbuttonup消息,而
wparam参数为$00000001、 $00000000 正好区分了 wm_lbuttondown、wm_lbuttonup消息。经测试此猜想正确,发送登录消息成功!
经反复监测鼠标点击登录按钮的消息流发现wm_lbuttondown、wm_lbuttonup的lparam参数是一个范围值并非固定值,除了$00fd013a,还有
$00f80137等等等~具体范围木有时间去测试确定了~
源代码如下:
1 program onekeyrun;
2
3 uses
4windows,shellapi,messages;
5 {$r *.res}
6
7 var
8winhandle:integer=0;
9count:integer=0;
10
11 begin
12shellexecute(0,'open','e:\program files\tencent\qq\bin\qq.exe',nil,nil,sw_show);
13repeat
14begin
15sleep(5000);
16winhandle:=findwindowex(0,0,'txguifoundation','qq2011');
17inc(count);
18end;
19until (winhandle>0) or (count>200);
20if winhandle>0 then
21begin
22postmessage(winhandle,wm_lbuttondown,$00000001,$00fd013a);
23postmessage(winhandle,wm_lbuttonup,$00000000,$00fd013a);
24end;
25 end.
本文章及程序源码旨在分析技术,省去手动登录多个qq的麻烦,不含有任何恶意破坏和攻击的企图。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
注:本文源代码点此下载
======================================================
目前的qq2011版本中,其登陆界面上除了qq号输入框和密码输入框,其他的的按钮都是绘图绘上去的,均无窗口句柄。
qq登录窗口的窗口类为'txguifoundation',窗口标题为'qq2011'。
qq账号输入框的窗口类为'txedit',窗口标题为空,密码输入框的窗口类为'edit',窗口标题是动态的'a~z'。
由于登陆界面的【登录】按钮无窗口句柄,因此无法向按钮发送消息,由此猜想其界面的所有操作均是通过特定消息来操作的。
但是向登录窗口发送wm_lbuttondown和wm_lbuttonup消息来模拟鼠标点击登录按钮的操作无任何反应。
通过spy++监测qq2011登录过程中的消息流发现,其消息基本都是直接发送至登录窗口的,所以逐条查看带有wm_lbuttondown
和wm_lbuttonup消息的地方 ,并发现一组 wm_lbuttondown、 wm_lbuttonup ,查看消息属性发现wm_lbuttondown
消息中的wparam参数为$00000001,lparam参数为$00fd013a,wm_lbuttonup消息的wparam参数为$00000000,lparam参数为$00fd013a。
因此猜想模拟鼠标点击登录按钮的消息中, lparam参数为$00fd013a代表这是个用于登录按钮的wm_lbuttondown或wm_lbuttonup消息,而
wparam参数为$00000001、 $00000000 正好区分了 wm_lbuttondown、wm_lbuttonup消息。经测试此猜想正确,发送登录消息成功!
经反复监测鼠标点击登录按钮的消息流发现wm_lbuttondown、wm_lbuttonup的lparam参数是一个范围值并非固定值,除了$00fd013a,还有
$00f80137等等等~具体范围木有时间去测试确定了~
源代码如下:
1 program onekeyrun;
2
3 uses
4windows,shellapi,messages;
5 {$r *.res}
6
7 var
8winhandle:integer=0;
9count:integer=0;
10
11 begin
12shellexecute(0,'open','e:\program files\tencent\qq\bin\qq.exe',nil,nil,sw_show);
13repeat
14begin
15sleep(5000);
16winhandle:=findwindowex(0,0,'txguifoundation','qq2011');
17inc(count);
18end;
19until (winhandle>0) or (count>200);
20if winhandle>0 then
21begin
22postmessage(winhandle,wm_lbuttondown,$00000001,$00fd013a);
23postmessage(winhandle,wm_lbuttonup,$00000000,$00fd013a);
24end;
25 end.
本文章及程序源码旨在分析技术,省去手动登录多个qq的麻烦,不含有任何恶意破坏和攻击的企图。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
相关文章推荐
- delphi 发送鼠标点击消息到指定窗口
- 向指定窗口发送键击消息Delphi
- delphi代码实现窗口最小化,最大化,关闭消息发送
- 2017微信数据报告 截至9月日登录用户超9亿日发送消息380亿次
- 使用Windows API函数向标准窗口控件发送消息
- MFC子父窗口发送消息
- delphi开发日志--登录窗口
- delphi 发送消息控制滚动条
- 使用C# 向记事本窗口发送消息
- 借助Spy++向指定的窗口发送消息—3
- 关于winsock中网络编程事件模型和窗口消息模型中FD_WRITE的理解与数据的发送需要注意的关键点
- 熙熙-WebBrowser判断登录成功-WebBrowser-404错误-500错误-屏蔽消息窗口-Webbrowser判断是否加载成功
- 通过向父亲窗口发送消息,要求其他窗口对其进行销毁
- python实现QQ机器人(自己主动登录,获取群消息,发送群消息)
- delphi自定义窗口消息
- Delphi用户登录窗口框架
- 注入窗口的发送鼠标消息
- MFC 如何获取各类窗口的句柄并用PostMessage发送消息
- MFC 向指定窗口发送自定义消息
- Delphi消息的广播方式(先RegisterWindowMessage,后SendMessage HWND_BROADCAST,最后改写接收窗口的WndProc)