制作联众找茬外挂

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

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
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 7

打赏作者

ZhuJunfeng

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值