QQ批量自动登录程序的设计 易语言实现qq批量登录
以TM2009为例,查看了一下,未登录之前一个窗体,上边两个控件,登录以后,窗体捕获到一个控件,根据这个,首先找到QQ的登录框,输入用户名,密码的位置,获取窗体句柄的具体代码如下:
这里先定义了一个record类型,
1TQQWnd=record
2QQWnd,QStatusWnd:HWND;//QQ的窗口句柄,QQ的弹出登录状态句柄
3QQNumWnd,QQPassWnd:HWND;//QQ号码输入句柄,QQ密码输入句柄
4end;
5
1functionGetQQLoginHwd(varAQQWnd:TQQWnd):Boolean;
2var
3WinTitle:array[0..254]ofChar;
4WinClass:array[0..254]ofChar;
5begin
6Result:=False;
7AQQWnd.QQWnd:=0;
8AQQWnd.QQNumWnd:=0;
9AQQWnd.QQPassWnd:=0;
10AQQWnd.QQWnd:=FindWindow(nil,'TM2009');
11whileAQQWnd.QQWnd<>0dobegin
12AQQWnd.QQNumWnd:=FindWindowEx(AQQWnd.QQWnd,0,'ATL:30A4D1D8',nil);
13AQQWnd.QQPassWnd:=FindWindowEx(AQQWnd.QQWnd,0,'Edit',nil);
14if(AQQWnd.QQNumWnd<>0)and(AQQWnd.QQPassWnd<>0)thenbegin
15Result:=True;
16FOpened:=True;
17Exit;
18endelsebegin
19AQQWnd.QQWnd:=GetWindow(AQQWnd.QQWnd,GW_HWNDNEXT);
20ifAQQWnd.QQWnd=0thenContinue;
21GetWindowText(AQQWnd.QQWnd,@WinTitle,SizeOf(WinTitle));
22ifWinTitle<>'TM2009'thenContinue;
23end;
24end;
25end;
26
因为腾讯的密码输入框,采用的是低级钩子,然后定时的释放,建立钩子这种方式来防止木马程序去捕获,我尝试了下,直接的用Sendmessage去发送密码信息,没反应,因此这里我采用了SendInput的方式去输入密码,而用户框因为没有做任何的保护措施,所以可以直接的通过发送消息,将QQ账户信息给赋值过去,具体代码为
1SetForegroundWindow(QQWnds.QQWnd);//QQ窗体设置为活动窗体
2//设置QQ号码
3SendMessage(QQWnds.QQNumWnd,WM_SETFOCUS,0,0);//聚焦至QQ号码输入框
4Sleep(20);
5SendMessage(QQWnds.QQNumWnd,WM_SETTEXT,0,LPARAM(FQQNum));//设置QQ号码
6
7SendMessage(QQWnds.QQPassWnd,WM_SETFOCUS,0,0);//聚焦密码输入框
8Sleep(20);
9//设置QQ密码
10SIKeyInput(FQQPass,10);//QQ密码采取SENDINPUT方式
11
12
13
解下来要操作的,就是设置登录方式了,譬如说“我在线上”,“隐身”等状态,由于腾讯的登录窗体是采用的GUI,所以是捕获不到句柄的,只能通过坐标来捕获,我之前的时候,是用的固定坐标,然后有的电脑可以用,有的不能用,后来才发现,是由于腾讯的界面可以拉动,只要一拉动,他的坐标位置就变了,因此我这里采取相对坐标,根据QQ密码框的坐标,来设置点击的坐标。腾讯的状态是在窗体上点击以后,弹出一个跟登录框平级的窗口,因此点击以后,需要检测是否弹出选择状态窗口,找到那个窗口句柄以后,再发送相应的点击命令,这样就完成整个的流程了
1const
2QQStatusYArray:array[0..5]ofInteger=(19,38,62,86,105,131);
3
4
5ClickTimes:=0;//为防止有的时候点击过程中出现其他不可预料的错误,这里可以重复点击三次
6QQWnds.QStatusWnd:=0;//设置QQ状态初始句柄为0
7//鼠标点击
8whileClickTimes<3dobegin
9PostMessage(QQWnds.QQWnd,$201,MK_LBUTTON,StrToInt(#36+IntToHex(QQNumRec.Bottom-QQRect.Top+21,4)+IntToHex(QQNumRec.Left-QQRect.Left+25,4)));//发送点击消息,这里如果采用SendMessage,会死线程,因此我采用了PostMessage
10PostMessage(QQWnds.QQWnd,$202,MK_LBUTTON,StrToInt(#36+IntToHex(QQNumRec.Bottom-QQRect.Top+21,4)+IntToHex(QQNumRec.Left-QQRect.Left+25,4)));
11Sleep(200);
12QQWnds.QStatusWnd:=FindWindow('TXGuiFoundation','TXMenuWindow');//检测是否存在QQ设置状态窗体
13ifQQWnds.QStatusWnd<>0thenbegin
14try
15PostMessage(QQWnds.QStatusWnd,$201,MK_LBUTTON,StrToInt(#36+IntToHex(QQStatusYArray[FQQStatus],4)+IntToHex(27,4)));//如果存在窗体,直接的发送点击信息
16PostMessage(QQWnds.QStatusWnd,$202,MK_LBUTTON,StrToInt(#36+IntToHex(QQStatusYArray[FQQStatus],4)+IntToHex(27,4)));
17except
18end;
19Break;
20end;
21ClickTimes:=ClickTimes+1;
22end;
23ifQQWnds.QStatusWnd=0thenbegin//如果一直没有捕获到设置状态窗体,程序则自动退出
24Task.Comm.Send(MSG_QQ_ERR,IntToStr(QQRect.Left)+':'+IntToStr(QQRect.Top)+':'+IntToStr(QQRect.Right)+':'+IntToStr(QQRect.Bottom)
25+','+IntToStr(QQNumRec.Left)+':'+IntToStr(QQNumRec.Top)+':'+IntToStr(QQNumRec.Right)+':'+IntToStr(QQNumRec.Bottom)
26+IntToStr(QQNumRec.Bottom-QQRect.Top+21)+'设置状态失败');
27//Task.Comm.Send(MSG_QQ_ERR,IntToStr(QQNumRec.Left-QQRect.Left+25)+':'+IntToStr(QQNumRec.Bottom-QQRect.Top+21)+'设置状态失败');
28Exit;
29end;
30
最后,直接的点击登录按钮就可以了,这个地方,也是要计算相对于密码输入框的坐标
1//点击登录按钮
2try
3PostMessage(QQWnds.QQWnd,$201,MK_LBUTTON,StrToInt(#36+IntToHex(QQNumRec.Bottom-QQRect.Top+114,4)+IntToHex(QQNumRec.Left-QQRect.Left+64,4)));
4PostMessage(QQWnds.QQWnd,$202,MK_LBUTTON,StrToInt(#36+IntToHex(QQNumRec.Bottom-QQRect.Top+114,4)+IntToHex(QQNumRec.Left-QQRect.Left+64,4)));
5except
6end;
7
至此,整个的流程完毕了,最后,还可以增加上检测该QQ号码是否已经登录
以下是最后出来的界面,我直接的将QQ信息保存在数据库当中,密码采用了AES加密,所以也不用担心密码信息被泄
可以点击这里下载QQ批量下载
更多阅读
开机自动运行程序 xp开机自动运行软件
现在跟大家分享开机自动运行程序、如何开机自动运行程序、开机自动运行程序设置,如何设置关机王定时关机软件开机自动运行程序。我们都知道,开机自动运行程序,也就是设置程序随服务方式自启动,一方面大大方便了程序的自己运行,另一方面
检测到不兼容的键盘驱动程序的解决方法 win10键盘驱动不兼容
在Windows XP系统中单击语言栏的设置弹出“检测到不兼容的键盘驱动程序”的错误提示对话框,如遇到此问题的朋友可通过下面的方法来解决。检测到不兼容的键盘驱动程序的解决方法——步骤/方法检测到不兼容的键盘驱动程序的解决方法 1
QQ如何设置自动登录 iphone描述文件在哪
QQ如何设置自动登录——简介 QQ已经成为了当今社会比较流行的聊天工具,每天一打开电脑第一件事情就是登录QQ,那么怎样才能让QQ自动登录呢?现在我们来设置一下,实现这个愿望。QQ如何设置自动登录——工具/原料QQ软件QQ账号联网电脑QQ如
Windows XP怎样实现自动登录而无需输入密码 精 windows服务实现接口
某些用户在启动Windows XP系统时会弹出输入用户名和密码的对话框,如果是家用电脑用户,这个对话框很没有必要,也是多余。所以笔者写下了这篇经验来实现开机自动登录。Windows XP怎样实现自动登录而无需输入密码 精——方法一Windows XP
三种Windows XP开机自动登录的设置方法 windows xp开关机音乐
三种Windows XP开机自动登录的设置方法时间:2011-08-03 12:48来源:学电脑吧 作者:随缘点击:370次 |我要投稿Windows XP开机不会自动登录一直困扰着好多的电脑族,今天学电脑吧随缘为大家整理一篇解决Windows XP开机无法自动登录的文章,