制作联众找茬外挂

制作外挂,首先要做一个鼠标的钩子,这个大家应该都知道.以下简单描述一下

SetWindowsHookEx 装载钩子

UnHookWindowsHookEx 卸载钩子

示例

hHk := SetWindowsHookEx(WH_MOUSE,@MouseHookProc,Hinstance,0);

写一个处理函数function MouseHookProc,将需要的鼠标信息通过SendMessage送一个自定义信息WM_CTRLCURSORPOS给主窗体

有了鼠标点击动作和点击位置的信息以后就好办了.

主窗体中用Procedure TForm1.WMCtrlCursorPos(var Msg:TMessage);来处理捕获到的WM_CTRLCURSORPOS消息

LParam中包含鼠标位置信息

用WindowFromPoint得到鼠标下面游戏窗体的handle

用GetWindowDC得到游戏窗口的dc

用GetWindowRect得到游戏窗口的大小和位置

创建一个游戏窗口的canvas 

mycan:=TCanvas.Create;
  Mycan.Handle := dc;

创建bmp1,bmp2从指定位置将游戏窗口的两个图片复制下来,

bmp1.Canvas.CopyRect(dstrect,mycan,srcrect);

bmp2.Canvas.CopyRect(dstrect,mycan,srcrect);

比较两个图片,如果有不同的象素点,则画成兰色

      if bmp1.Canvas.Pixels[i,j]<>bmp2.Canvas.Pixels[i,j] then
      begin
        bmp1.Canvas.Pixels[i,j]:=clblue;
      end;

将比较结果用image显示在窗体上

然后在过一些小的调整,设置窗体属性为stayontop,一直在最上面

为image控件加一个mouseup 事件.当触发的时候模拟点击游戏画面.这样的话你就可以直接点主窗体上兰色的小框框就可以把图片中不同的地方找出来了

setcursorpos(temprect.Left+96+x,temprect.Top+31+y);设置鼠标位置为游戏窗体的左上角加图片偏依量加x或y

  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

用MOUSEEVENTF_LEFTDOWN加上MOUSEEVENTF_LEFTUP模拟一次左键单击

  temp.X:=x;
  temp.Y:=y;
  temp:=clienttoscreen(temp);
  setcursorpos(temp.X,temp.Y);

在把鼠标放回原来位置

大家可以试一下,很方便的哦.

要源码的可以留下邮件地址

点击这里下载可运行压缩文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值