文/jorge
它的原理说来也不难,无非实时地替人做两件事:1.把一定是雷的方块标上雷的记号,2.把一定不是雷的方块点击开.至于轻易判断不了是不是雷的,还得靠你的运气.其实,扫雷游戏中,这两项最简单的操作绝对是占了绝大多数时间的,不妨看看实测的效果:我使用扫雷外挂的纪录是:初级.中级都1秒,高级4秒.(与修改注册表的相比还是差了一点,不过那个一点技术含量都没有,呵呵) 【程序编程相关:在Delphi里播放Flash 】
其实我不玩网络游戏的,所以对于外挂类程序也没什么好或坏的感觉,甚至平时基本不会想到这个概念.这个实验项目一开始称为“扫雷助手”,而究其技术含量,与现在真正实用的游戏外挂程序也没有可比性.设计它的意义,无非在于对某些windows api的的进一步熟悉,使从未涉足过此领域的新手(当初的我自己)能够揭开某些“神秘的面纱”.之所以选择“扫雷”这个最经典的小游戏进行hack,一方面,使这个项目更贴近生活,更容易被理解,另一方面也可以最大化本人的成就感^_^,毕竟,在新手中,对扫雷的hack的探索似乎从来都没有停止过,从早期的修改.ini文件与注册表,到后来的esc与xyzzy,无不体现着一代代人对这个目标的不懈追求^_^.而对于我们这些搞专业的来说,则应该有专业一点的方式,要有点技术含量!于是我做了这个叫mineassistant的项目. 【推荐阅读:点击DBGrid的Title对查询结果排】
【扩展信息:自动生成拼音(汉字反查到拼音) 】显然,这个实现过程涉及到了从一个程序操作另一个程序的窗口.这必须使用windows api,主要的有下面几个: findwindow getdc getpixel postmessage稍微有点基础的看也看得出来,本人对于扫雷进程的内部数据是一无所知的,对于当前雷区的状态信息的取得,都是通过最浅显最笨的方法,就是直接读取屏幕像素.而反馈的操作,也都是通过postmessage简单的发送一条信息来模仿鼠标点击.这样,本程序就自然的分成了两个层次,一个是与扫雷窗口的接口层,一个是实现判断的算法层.若是有基础的人,在提示到这以后,应该就可以自己来实现它了^_^,但就本人的经验来看,还有一个难点,就是如何从一个个像素的取值来分析出每个方块是什么状态.... 下一页