首先,先来谈一下动作式的外挂,这也是我第一次写外挂时做的最简单的一种。 记得还在“石器”时代的时候,我看到别人挂着一种软件(外挂)人物就可以四外游走(当时我还不知道外挂怎么回事^_^),于是找了这种软件过来研究(拿来后才听别人说这叫外挂),发现这种东东其实实现起来并不难,仔佃看其实人物的行走无非就是鼠标在不同的地方点来点去而已,看后就有实现这功能的冲动,随后跑到MSDN 上看了一些资料,发现这种实现这几个功能,只需要几个简单的API 函数就可以搞定: 1、首先我们要知道现在鼠标的位置(为了好还原现在鼠标的位置)所以我们就要用到API函数GetCursorPos,它的使用方法如下: BOOL GetCursorPos( LPPOINT lpPoint // address of structure for cursor position ); 2、我们把鼠标的位置移到要到人物走到的地方,我们就要用到SetCursorPos 函数来移动鼠标位置,它的使用方法如下: BOOL SetCursorPos( int X, // horizontal position int Y // vertical position ); 3、模拟鼠标发出按下和放开的动作,我们要用到mouse_event 函数来实现,具休使用方法用下: VOID mouse_event( DWORD dwFlags, // flags specifying various motion/click variants DWORD dx, // horizontal mouse position or position change DWORD dy, // vertical mouse position or position change DWORD dwData, // amount of wheel movement DWORD dwExtraInfo // 32 bits of application-defined information ); 在它的dwFlags 处,可用的事件很多如移动MOUSEEVENTF_MOVE,左键按下MOUSEEVENTF_LEFTDOWN,左键放开 MOUSEEVENTF_LEFTUP,具体的东东还是查一下MSDN 吧~~~~~ 好了,有了以前的知识,我们就可以来看看人物移走是怎么实现的了: getcursorpos(point); setcursorpos(ranpoint(80,windowX),ranpoint(80,windowY));//ranpoint 是个自制的随机坐标函数 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); setcursorpos(point.x,point.y); 看了以上的代码,是不是觉得人物的游走很简单啦~~,举一仿三,还有好多好东东可以用这个技巧实现(我早就说过,TMD,这是垃圾外挂的做法,相信了吧~~~),接下来,再看看游戏里面自动攻击的做法吧(必需游戏中攻击支持快捷键的),道理还是一样的,只是用的 API 不同罢了~...