QQ 自动登陆的问题 |
|
bjwdxs
一般會員 發表:4 回覆:4 積分:1 註冊:2006-07-06 發送簡訊給我 |
各位给我看一下下面的程序:
这个小程序主要是用来实现QQ 自动登陆,可运行过程中出现这样的问题 1. 如果QQ 用户登陆 的窗口没有打开,则会运行QQ ,但是QQ的窗口弹出来之后,却不在往下执行,为什么? 2.如果QQ的登陆窗口已打开,则会往QQ号码框,和密码框里添数据,可运行的结果老提示我密码不对,不知错在哪? 参数说明: QQinfo 中存的是QQ 的信息 QQinfo.QQpath 里是QQ程序的路径 QQinfo.QQ 里是QQ的QQ 号码 QQinfo.QQpass 里是QQ 密码 QQ版本 :QQ2006贺岁版 //---------------------------------------------------------------------------------------------------------- HWND qqhand; qqhand = ::FindWindow(0,"QQ用户登录"); if(!qqhand) //如果QQ 没有打开,则启动他 { ShellExecute(0,NULL, QQinfo.QQpath.c_str(), "","",SW_SHOW ); qqhand = ::FindWindow(0,"QQ用户登录"); //为QQ弄一个句柄 } HWND chand = GetDlgItem(qqhand,0x8a); //获取QQ的号码框句柄 //HWND chand = FindWindowEx(qqhand,NULL,"ComboBox",NULL); if(chand) { char* s= QQinfo.QQ.c_str(); SendMessage(chand,WM_SETTEXT,0,(LPARAM)(s)); //设置QQ号码 //获取qq密码框的句柄 HWND Hmmk = GetDlgItem(qqhand,0x0); if(Hmmk) { char* QQpass = QQinfo.QQpass.c_str(); //发送密码 for(int i=0; i ::SendMessage(Hmmk,WM_CHAR,(WPARAM)(TCHAR(*QQpass )),0); } //单击登陆 HWND HLoginButton = GetDlgItem(qqhand,0x3ea0); SendMessage(HLoginButton,BM_CLICK,0,0); } } |
bjwdxs
一般會員 發表:4 回覆:4 積分:1 註冊:2006-07-06 發送簡訊給我 |
我找到了一些原因:
HWND qqhand; qqhand = ::FindWindow(0,"QQ用户登录"); if(!qqhand) //如果QQ 没有打开,则启动他 { ShellExecute(0,NULL, QQinfo.QQpath.c_str(), "","",SW_SHOW ); for(char i=1; i<=QQinfo.QQpass.Length(); i ) ::SendMessage(Hmmk,WM_CHAR,(WPARAM)(TCHAR(QQinfo.QQpass[i])),0); } //单击登陆 HWND HLoginButton = GetDlgItem(qqhand,0x3ea0); SendMessage(HLoginButton,BM_CLICK,0,0); } } 关于第一点: QQ若没有运行,然后运行他, 我想QQ运行,加载内存要时间,所以要等一下 第2点: 程序改了一点: 用spy 能看到给QQ密码框发的消息WM_CHAR ,但是登陆还是提示有问题,谁能给我看一下 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |