大家来找茬辅助工具实现
昨天看到同学在玩大家来找茬,一时兴起,打算自己写个辅助工具。其实游戏很简单,就是找出两幅图片中的不同之处。游戏规则了解了,那外挂的思路也就很明朗了只要对比两幅图片的像素,有不相同就存储进数组就可以了。有了思路,就开工吧!
首先用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
欢迎大家指出不足之处。
程序效果图
大家来找茬辅助工具实现相关推荐
- QQ找茬辅助工具的制作
QQ找茬辅助工具的制作 转载请注明出处:http://www.cppblog.com/greatws/archive/2009/05/05/81996.html 这段时间GF一直在玩QQ找茬,看了一下 ...
- QQ找茬辅助工具 C#
昨天晚上用C#做了一个QQ游戏"找茬"辅助工具.这个不能算是一个外挂工具,因为不涉及到服务器和客户端的问题,只涉及到图像处理的知识.目前只是实现了基本的功能,但是已经够用了,玩了几 ...
- “图片差异检查”辅助工具(即“大家来找茬”辅助工具)源码分享
忽然心血来潮,想写一个辅助工具,让朋友们在"大家来找茬"之类的游戏中可以少费一些眼睛. 在Java方面我是新手,在折腾了一段时间后,终于还是写出了一个基本可用的测试版程序.详细的使 ...
- QQ找茬辅助工具的制作[转]
出处:http://www.cppblog.com/greatws/archive/2009/05/05/81996.html 这段时间GF一直在玩QQ找茬,看了一下,原理很简单,就是找到2附图片的不 ...
- 大家来找茬辅助工具超级简易版
如上图所示,打开QQ游戏,等待游戏开始,按alt+print对当前窗口截屏,然后按start对图像分析,并按图中白色区域较多的提示点点击. 纯粹山寨,仅供娱乐哈.
- 跟我学 编写QQ找茬辅助1 -原创文章
今天把完美日志更新一下打算早点睡觉的. 被朋友拉着玩了一下QQ找茬..高手大有人在啊..很是悲惨.. 朋友痛恨的说.不行,要找外挂玩玩..百度一下,也还有不少..对于 ...
- QQ找茬辅助源码下载
http://www.cnblogs.com/kovin/p/3531761.html
- 找茬类辅助工具的编写
主要有两个方面:屏幕抓图与贴图和像素比较与重设 若使用GDI,建议使用CImage类,比较方便. 原理很简单:将两幅图抓取下来,按像素比较,相同的设一种色,不同的设另一种色,然后形成新的图,再将此图贴 ...
- FindDifferent - QQ游戏快速找茬工具
为什么80%的码农都做不了架构师?>>> FindDifferent - QQ游戏快速找茬工具 原文来自:http://yhzhtk.info/2013/06/23/1-qq- ...
最新文章
- jQuery easyUI--accordion折叠面板
- Eclipse 搭建Android开发环境(整理)
- c++ string分割字符串split_python 字符串和文本处理
- 机器学习笔试面试超详细总结(一)
- 使用Jasper Reports以Java创建报告
- mysql 监控 开源_强大的开源企业级数据库监控利器Lepus
- 怎么开启队友无伤_和平精英暗夜危机无敌点位送上!不仅无伤打僵尸 敌人还看不到你...
- [转]深入理解Java之线程池
- win10java记事本运行_win10系统制作java文本的操作方法
- WORD出错:布局也会超出内容区
- 用html写个人简历
- ftp连接工具,8款免费又好用的ftp连接工具
- OTN 设备基本组成介绍
- 关于中低端游戏本玩3A游戏降频的优化
- 算数操作符与移位操作符
- 彻底解决Android 拍照 内存溢出 Out of Memory的问题
- 【IOS开发进阶系列】动画专题
- Camshift知识点
- 2019北大计算机夏令营,2019年北京大学化学学院“全国优秀大学生夏令营”第三轮通知...
- 记事本带计算机手机版,有什么手机和电脑能同步的便签记事本
热门文章
- linux内核中的设计模式
- java 画爱心壮那首歌最,抖音貂蝉大招画爱心的背景音乐是什么_貂蝉大招画爱心的BGM歌曲介绍_咖绿茵手游站...
- 【RPG Maker MV】使用技巧1:用自己绘制的图片当做地图
- 在 Windows 下使用 libVLC
- ramda.js的compose源码解析
- C程序括号匹配检查(带详细注释)
- 网络系统管理Debian模块||RouterSrv的openvpn配置详解
- python在人工智能领域的应用论文_试析人工智能背景下的Python教学
- a^b%c(蒙格马利快速幂模算法)
- 二分法例题:聪明的质检员(运用了前缀和思想)