模拟鼠标单击消息

学习做游戏外挂开发,记录下学习的过程。

要实现模拟“开始”按钮单击事件。

var
  gameH:HWND;
begin
  gameH:=FindWindow(nil,'QQ游戏 - 连连看角色版');
  {
  SendMessage(gameH,Messages.WM_LBUTTONDOWN,0,$023E0290);
  SendMessage(gameH,Messages.WM_LBUTTONUP,0,$023E0290);
  }
  PostMessage(gameH,Messages.WM_LBUTTONDOWN,0,$023E0290);
  PostMessage(gameH,Messages.WM_LBUTTONUP,0,$023E0290);

一开始总是不能实现,用Spy++跟踪对比发现


发现模拟的消息总是有'S'和'R',直接点游戏的开始只是'P'。

查帮助

“消息”视图中显示的每个消息行都包含一个“P”、“S”、“s”或“R”代码。这些代码具有以下含义:

代码意义
P使用 PostMessage 函数将消息发送到队列。没有可用的关于消息的最终处置的信息。
S使用 SendMessage 函数发送消息。这意味着,发送方在接收方处理和返回该消息之前不会重新获取控制。因此,接收方可以将一个返回值传送回发送方。
s消息已发送,但安全性阻止对返回值的访问。
R每个“S”行都具有一个对应的列出消息返回值的“R”(返回)行。有时消息调用被嵌套,这意味着一个消息处理程序发送了另一个消息。

修改代码,用PostMessage后,再试OK!

不过PostMessage和SendMessage两个函数的区别还没有搞清楚。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值