昨天看到同学在玩大家来找茬,一时兴起,打算自己写个辅助工具。其实游戏很简单,就是找出两幅图片中的不同之处。游戏规则了解了,那外挂的思路也就很明朗了只要对比两幅图片的像素,有不相同就存储进数组就可以了。有了思路,就开工吧!
首先用FindWindow获取大家来找茬的窗口指针,获取窗口大小,可以支持两个版本——大家来找茬和美女来找茬,其实就是窗口大小不同,图片大小不同。(我没有实现美女来找茬版本,大家可以自己尝试一下)

void CMyDlg::SmallVersion(CWnd *pWndDest,CWnd *pWndSrc) { HBITMAP hBitmap, hOldBitmap; // 位图句柄 HDC hPicture,hMypicture; int nHeight,nWidth; if(array.GetSize()!=0) array.RemoveAll(); if(pWndDest==NULL || pWndSrc==NULL) return ; hPicture=pWndSrc->GetDC()->m_hDC; hMypicture=CreateCompatibleDC(hPicture); //创建与游戏DC相容的DC nWidth=377; //横宽为游戏中图片的大小 可以用Photoshop等工具测出 nHeight=283; hBitmap=CreateCompatibleBitmap(hPicture,nWidth,nHeight); //创建与源窗口设备描述表相容位图 hOldBitmap=(HBITMAP)SelectObject(hMypicture,hBitmap); // 把新位图选到内存设备描述表中 BitBlt(hMypicture,0,0,nWidth,nHeight,hPicture,11,187,SRCCOPY); // 把屏幕设备描述表拷贝到内存设备描述表中 hBitmap=(HBITMAP)SelectObject(hMypicture,hOldBitmap); //得到位图的句柄 CDC dcMem; dcMem.CreateCompatibleDC(GetDC()); //创建一个与目标窗口设备描述表兼容的位图 HBITMAP poldBitmap=(HBITMAP)SelectObject(dcMem.m_hDC,hBitmap); GetDC()->StretchBlt(5,5,nWidth,nHeight,&dcMem,0,0,nWidth,nHeight,SRCCOPY); //显示位图 DeleteDC(hPicture); DeleteDC(hPicture); dcMem.SelectObject(poldBitmap); dcMem.DeleteDC(); CDC* pDC; pDC = pWndSrc->GetDC(); CPoint* pt; for(int x=11;x<388;x+=2) //依次比较两幅图片每个像素不同之处 { for(int y=187;y<469;y+=2) { if(pDC->GetPixel(x,y) != pDC->GetPixel(x+393,y)){ pt = new CPoint(x+5-11,y+5-187); array.Add(pt); } } } pDC=pWndDest->GetDC(); for(int p=0;p<array.GetSize();p++) //把不同的点设置红色 { CPoint pt=*((CPoint*)array.GetAt(p)); CPoint temp = *((CPoint*)array.GetAt(p)); pDC->SetPixel(temp,RGB(255,0,0)); } }

这个函数就可以实现在自己的界面上显示两幅图片的不同之处,可如果要实现模拟鼠标单击游戏窗口的事件,还需要几步。

思路是这样的,在点击鼠标的时候用GetCursorPos获取鼠标的坐标,然后用ScreenToClient转换为当前窗口的坐标,得到了相对坐标,我们就可以利用自己图片和游戏窗口中图片的位置关系,计算出游戏窗口中的坐标。  有了坐标,我们就用::FindWindow来找到游戏窗口的句柄,然后用::PostMessage即可发送消息,即完成了模拟点击事件。

当然,程序写的比较粗糙,还存在很多问题,比如找茬的时候会存在明显的延迟。

源码:http://download.csdn.net/source/1657261

欢迎大家指出不足之处。

程序效果图

大家来找茬辅助工具实现相关推荐

  1. QQ找茬辅助工具的制作

    QQ找茬辅助工具的制作 转载请注明出处:http://www.cppblog.com/greatws/archive/2009/05/05/81996.html 这段时间GF一直在玩QQ找茬,看了一下 ...

  2. QQ找茬辅助工具 C#

    昨天晚上用C#做了一个QQ游戏"找茬"辅助工具.这个不能算是一个外挂工具,因为不涉及到服务器和客户端的问题,只涉及到图像处理的知识.目前只是实现了基本的功能,但是已经够用了,玩了几 ...

  3. “图片差异检查”辅助工具(即“大家来找茬”辅助工具)源码分享

    忽然心血来潮,想写一个辅助工具,让朋友们在"大家来找茬"之类的游戏中可以少费一些眼睛. 在Java方面我是新手,在折腾了一段时间后,终于还是写出了一个基本可用的测试版程序.详细的使 ...

  4. QQ找茬辅助工具的制作[转]

    出处:http://www.cppblog.com/greatws/archive/2009/05/05/81996.html 这段时间GF一直在玩QQ找茬,看了一下,原理很简单,就是找到2附图片的不 ...

  5. 大家来找茬辅助工具超级简易版

    如上图所示,打开QQ游戏,等待游戏开始,按alt+print对当前窗口截屏,然后按start对图像分析,并按图中白色区域较多的提示点点击. 纯粹山寨,仅供娱乐哈.

  6. 跟我学 编写QQ找茬辅助1 -原创文章

    今天把完美日志更新一下打算早点睡觉的.        被朋友拉着玩了一下QQ找茬..高手大有人在啊..很是悲惨..           朋友痛恨的说.不行,要找外挂玩玩..百度一下,也还有不少..对于 ...

  7. QQ找茬辅助源码下载

    http://www.cnblogs.com/kovin/p/3531761.html

  8. 找茬类辅助工具的编写

    主要有两个方面:屏幕抓图与贴图和像素比较与重设 若使用GDI,建议使用CImage类,比较方便. 原理很简单:将两幅图抓取下来,按像素比较,相同的设一种色,不同的设另一种色,然后形成新的图,再将此图贴 ...

  9. FindDifferent - QQ游戏快速找茬工具

    为什么80%的码农都做不了架构师?>>>    FindDifferent - QQ游戏快速找茬工具 原文来自:http://yhzhtk.info/2013/06/23/1-qq- ...

最新文章

  1. jQuery easyUI--accordion折叠面板
  2. Eclipse 搭建Android开发环境(整理)
  3. c++ string分割字符串split_python 字符串和文本处理
  4. 机器学习笔试面试超详细总结(一)
  5. 使用Jasper Reports以Java创建报告
  6. mysql 监控 开源_强大的开源企业级数据库监控利器Lepus
  7. 怎么开启队友无伤_和平精英暗夜危机无敌点位送上!不仅无伤打僵尸 敌人还看不到你...
  8. [转]深入理解Java之线程池
  9. win10java记事本运行_win10系统制作java文本的操作方法
  10. WORD出错:布局也会超出内容区
  11. 用html写个人简历
  12. ftp连接工具,8款免费又好用的ftp连接工具
  13. OTN 设备基本组成介绍
  14. 关于中低端游戏本玩3A游戏降频的优化
  15. 算数操作符与移位操作符
  16. 彻底解决Android 拍照 内存溢出 Out of Memory的问题
  17. 【IOS开发进阶系列】动画专题
  18. Camshift知识点
  19. 2019北大计算机夏令营,2019年北京大学化学学院“全国优秀大学生夏令营”第三轮通知...
  20. 记事本带计算机手机版,有什么手机和电脑能同步的便签记事本

热门文章

  1. linux内核中的设计模式
  2. java 画爱心壮那首歌最,抖音貂蝉大招画爱心的背景音乐是什么_貂蝉大招画爱心的BGM歌曲介绍_咖绿茵手游站...
  3. 【RPG Maker MV】使用技巧1:用自己绘制的图片当做地图
  4. 在 Windows 下使用 libVLC
  5. ramda.js的compose源码解析
  6. C程序括号匹配检查(带详细注释)
  7. 网络系统管理Debian模块||RouterSrv的openvpn配置详解
  8. python在人工智能领域的应用论文_试析人工智能背景下的Python教学
  9. a^b%c(蒙格马利快速幂模算法)
  10. 二分法例题:聪明的质检员(运用了前缀和思想)