网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
教你用VC6做QQ对对碰外挂程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

        前段时间跟以前的同事玩QQ游戏对对碰,结果输的好惨,后来在网上看到了有对对碰的外挂,但还需要注册,就考虑既然别人可以写出来,我为什么就不能写出来呢?于是花了一个下午的时间仔细研究了一下,把外挂写了出来。
        其实原理很简单,只要将棋盘上面的数据保存起来,然后经过分析就可以知道移动哪里的动物,然后再通过模拟鼠标消息来点击两个位置就可以了。
         1)获取棋盘数据
          要得到棋盘的数据进行分析,思路是这样:首先得获得对对碰的窗口,然后对窗口上面的象素进行分析,从而获取每个格子中的数据。对于每个格子里面的动物,一定可以有几个有特征的点使得可以区分开每个格子中的动物,可以用用2到3个点的数据保存一个动物,这样把每个格子中动物的数据都获得后,棋盘的数据也就出来了。
        首先,要得到对对碰的窗口,这个比较简单,可以用::FindWindow来实现,具体代码如下:
     CQQGameToolDlg * dlg = (CQQGameToolDlg *)parm;//这里因为这个函数是作为一个线程来做的,所以得传递一个参数过来
     dlg->hWnd = ::FindWindow(NULL,"QQ对对碰");//查询
     if(dlg->hWnd == NULL)
      dlg->hWnd = ::FindWindow(NULL,"对对碰");//好像窗口标题有时还不同,不知道是不是我自己搞错了
     if(dlg->hWnd == NULL)
     {
      AfxMessageBox("未找到对对碰窗口,请首先启动对对碰!");
      dlg->SetDlgItemText(IDC_BUTTON1,"启动");
      dlg->m_bStart = false;
      return 0;
     }
      到这里就得到了QQ对对碰的窗口句柄,但是要分析窗口中的象素,还需要得到一个窗口的HDC
    dlg->hDc = ::GetDC(dlg->hWnd);
    下面就是得到棋盘的数据了,首先得测试出棋盘左上角的坐标和每个格子的边长,具体测试方法就不给出了,是比较简单的,经过测试得出的数据,棋盘左上角坐标为(176,102),每个格子的边长是48。
    接下来就是保存棋盘数据了
    下边的函数是为了获取每一个方格的数据的
    参数x,y是棋盘坐标,比如(0,0)代表左上角第一个方格等等。
    我们在这里取每个格子中间那条线的象素作为数据进行存储。
    COLORREF * CQQGameToolDlg::GetRectData(int x, int y)
    {
     COLORREF * color;
     color = new COLORREF[48];
     int count = 0;
     for(int i=(x-1)*48 + m_posX;i<(x-1)*48 + m_posX + 48;i++)
     {
      color[count++] = GetPixel(hDc,i,(y-1)*48 + m_posY + 20);
       //如果是棋盘的底色,则忽略
      if(color[count-1] ==

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号