各位帮看看这个代码错在哪里_QQ游戏自动登陆器 V1.0 实现原理
各位,我在网上找的这个代码,按照说明做,为什么会出错啊,
主要是三个全局变量出错,和回调函数出错。
怎么改才正确啊,能不能把代码中用到的三个全局变量写到对话框图类中作为成员变量呢,那个回调函数能不能作为对话框图类的成员函数呀,好似我修改了也是出错的,不知怎么啦,谢谢各位!!!!!
网上代码:
QQ游戏自动登陆器 V1.0 实现原理
程序截图:
实现思路,利用FindWindow 需找 QQ游戏 窗口获得其窗口句柄 (无论是哪个版本的QQ游戏 窗口标题名都是 QQ游戏)利用这个句柄,使用EnumChildWindows 函数 遍历其文本框。向其写入,第一个文本框一定是账号,然后向其发送一个 SendMessage(hWnd,WM_SETTEXT,MAX_PATH,(long)QQUser); 写入数据的消息,
再判断控件 if (lStyle & ES_PASSWORD) 是否为密码属性 是则发送::SendMessage(hWnd,WM_SETTEXT,MAX_PATH,(long)Password); 密码。 密码框输入完毕后 发送一个回车消息使其登录。PostMessage(hWnd,WM_KEYDOWN,VK_RETURN ,0);
具体实现源码:
先设置几个全局变量:
char QQUser[11] = {0}; // QQ 账号
char QQPassword[]="L、"; // QQ 密码 偷一下懒 全部统一密码
int Test = 0; // 如果已经对两个对话框写入数据则回车登陆
// 这个是【账号 1】按钮触发的函数
void CQQDlg::OnGame1()
{
GetDlgItem(IDC_Game1)->EnableWindow(0); // 设置按钮为禁用 只是为了美观一点
strcpy(QQUser,"1262563257");
HWND hWnd = ::FindWindow(NULL,"QQ游戏"); // 寻找窗口句柄
::EnumChildWindows(hWnd,(WNDENUMPROC)EnumFunc,NULL); // 遍历控件
Test = 0;
CloseHandle(hWnd);
GetDlgItem(IDC_Game1)->EnableWindow(1); // 设置按钮为可用 只是为了美观一点
}
// EnumChildWindows 回调函数
BOOL CALLBACK EnumFunc(HWND hWnd,LPARAM lParam)
{
if (Test > 2) // 当Test 大于 2 时 说明数据已经写入 结束循环
{
return 0;
}
LONG lStyle = ::GetWindowLong(hWnd,GWL_STYLE); // 获取文本控件属性
if (lStyle & ES_PASSWORD) // 向密码框输入密码
::SendMessage(hWnd,WM_SETTEXT,MAX_PATH,(long)Password);
Test ++ ;
if ( Test == 1 ) // 第一个编辑框 肯定是账号
::SendMessage(hWnd,WM_SETTEXT,MAX_PATH,(long)QQUser);
if ( Test == 2 )//按回车键
::PostMessage(hWnd,WM_KEYDOWN,VK_RETURN ,0);
return 1;
}
我输入以上代码后,编译时候出错了,出以下提示信息
--------------------Configuration: qqgame - Win32 Debug--------------------
Compiling...
qqgameDlg.cpp
E:\2016VC\qqgame\qqgameDlg.cpp(178) : error C2065: 'QQUser' : undeclared identifier
E:\2016VC\qqgame\qqgameDlg.cpp(180) : error C2065: 'EnumFunc' : undeclared identifier
E:\2016VC\qqgame\qqgameDlg.cpp(181) : error C2065: 'Test' : undeclared identifier
E:\2016VC\qqgame\qqgameDlg.cpp(188) : error C2373: 'EnumFunc' : redefinition; different type modifiers
E:\2016VC\qqgame\qqgameDlg.cpp(195) : error C2065: 'QQPassword' : undeclared identifier
Error executing cl.exe.
qqgame.exe - 5 error(s), 0 warning(s)