手把手教你页游辅助开发学习VC++,总共6节。
有兴趣学习页游辅助开发的朋友可以看一下。
http://www.cnhaoxue.com/
还有实例源码。
http://www.cnhaoxue.com/
先发一篇上来给大家看看。
本内容学习需要有一定的编程知识,如果是刚入门的菜鸟 ,不建议继续往下看!(头一次写教程,欢迎吐槽!不喜勿喷~~~)
所谓游戏“辅助”,就是辅助你玩游戏的。我最先了解到游戏的辅助是在玩DNF和CF的时候,那是的辅助完全是作弊的工具。今天要给大家说的,网页游戏玩家辅助那是真正提高玩家用户体验的工具,对游戏的公平性没有任何影响。
就好比你从武汉去北京,如果自己一路开车,那要跑10几个小时,但是如果你车子装有自动驾驶功能的话,那么,你只需要睡一觉就行了!辅助便是如此!
学习辅助制作之前,先简单讲一下这个辅助的工作方式,简单的模拟按键、内存值的读取和修改、封包抓取和发送。这三种方法,我都会一一给大家讲解。需要注意的是内存辅助对客户端有效。如早期的传奇,奇迹,DNF等等(后面简单讲一次传奇自动打怪实
现),一般页游都是FLASH的,代码是动态加载的,所以不存在基址一说,至少目前本人还没掌握,呵呵……
万里之行始于足下,刚起步自然要从简单的开始,没学会走自然不能跑,飞奔畅游网络世界。模拟按键我要需要学习的几个重点
一:窗口句柄
二:发目标句柄发送消息
首先简要说下Windows的工作原理,Windows顾名思义,就是多窗口意思,那么每一个窗口都有一个自己的ID,像人一样,有自己的身份证号码,拿到这一个号码,我们就能确定是哪一个人了。Windows的ID我们称之为句柄,那么句柄怎么获取呢,下面教大家几种方法获取目标窗口的句柄。
FindWindow
FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。这个函数不搜索子窗口。这 个函数有两个参数,分别是lpClassName参数指向类名,lpWindowName指向窗口名,如果有指定的类名和窗口的名字则表示成功返回一个窗口的句柄。否则返回零。零就是说没有找到,在VC++表示为NULL。
举例说明使用方法:
假如我们要找到一个标题为"四大才子"的窗口,我们代码要怎么写呢?
用VS2010创建一个MFC工程,不会的可百度查阅,这里就不多说了。工程设置多字符集格式,UNICODE不太爽,这年头,大家求的就是倍儿爽!
1
HWND hWnd = ::FindWindow(NULL,"四大才子");
2
if (hWnd != NULL)
3
{
4
CString text;
5
text.Format("目标窗口:%08X",hWnd);
6
MessageBox(text);
7
}
这是使用的第二个参数值,窗口名称,第一个那是什么意思呢,我们可以用VS自带的Spy++来查看目标窗口的类名,拿QQ聊天窗口来说,是“TXGuiFoundation”
1
HWND hWnd = ::FindWindow("TXGuiFoundation",NULL);
2
if (hWnd != NULL)
3
{
4
CString text;
5
text.Format("目标窗口:%08X",hWnd);
6
MessageBox(text);
7
}
这两种方法都能获取到目标窗口句柄。
FindWindow是最常用的函数之一,其次是WindowFromPoint,该函数获得包含指定点的窗口的句柄。例如:
01
CPoint p;
02
GetCursorPos(&p);
03
CString title;
04
title.Format("%d:%d",p.x,p.y);
05
SetWindowText(title);
06
HWND hWnd = ::WindowFromPoint(p);
07
if (hWnd != NULL)
08
{
09
TCHAR text[256];
10
::GetWindowText(hWnd,text,sizeof(text)/sizeof(TCHAR));
11
MessageBox(text);
12
}
本节先讲到这里,第二节再继续……
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!