模拟鼠标按下

   

预备知识: 2个API函数 FindWindow,sendmessage

下载地址:

http://download.csdn.net/detail/zang141588761/9600388

工具使用spy++

很多朋友都对窗口句柄比较迷糊,这篇短文就以spy++这个软件为主,介绍下窗体句柄和使用按键插件时
,如果对这个句柄发送消息,即所谓的后台挂机。
spy++这个软件来自VC++,装好VC后,就可以在工具中看到。

我们以“记事本”为例,看看如果给记事本发送按键消息。
首先启动记事本

随后启动SPY++

使用spy++的查找功能

点开后的效果

我们把黑色准星拖动到记事本窗体上

然后点击“确定”,看到了SPY++已经显示了下图红色的内容。

这三个句柄从上到下依次是:
记事本的主句柄
文字输入框的句柄
状态栏的句柄
我们要给记事本发送按键消息,就要选对发送对象(句柄),这里显然,我们要发送给“文字输入框”。我们双击“文字输入框”这里,可以看到“窗口标题”、“窗口大小”、“窗口位置”等信息。点击“类”选项卡,查看下类名是什么,代码里需要类名做参数




步骤:
  1、用SPY++ 获取窗口标题 及 开始 按钮的 位置
     游戏标题:对对碰角色版
     开局 位置:x=384,y=390
     打开SPY++,拦截游戏的 鼠标消息 WM_LBUTTONDOWN,WM_LBUTTONUP
  2、用Delphi7编写程序
  
   
 HWND FindWindow(
  LPCTSTR lpClassName,  // 通过查找窗口类名 获取句柄 nil
  LPCTSTR lpWindowName  // 通过查找窗口标题 获取句柄== '对对碰角色版'
);



  LRESULT SendMessage(
  HWND hWnd,      // 目标窗口句柄 在这里由FindWindow获取
  UINT Msg,       // 发送消息类型 WM_LBUTTONDOWN WM_LBUTTONUP 
  WPARAM wParam,  // 这个我们用不着
  LPARAM lParam   // 这个是鼠标点击 窗口的坐标 高位是Y,低位X
 );               


//鼠标软模拟:好处就是不会真的移动鼠标  开始按钮 坐标 x=386  y=387
 sendmessage(hookHwnd,messages.WM_LBUTTONDOWN ,0,$0180017A);// 按下鼠标左键
 sendmessage(hookHwnd,messages.WM_LBUTTONUP  ,0, $0180017A); //抬起鼠标左键


硬件模拟:会真的移动鼠标
//mouse_event(MOUSEEVENTF_LEFTDOWN,X ,Y , 0, 0); 

//mouse_event(MOUSEEVENTF_LEFTUP,X ,Y , 0, 0); 


程序源码:


unit GameProc;


interface
uses windows,Messages;
 procedure Start;
implementation


//游戏开局
procedure Start;
var
 Gameh:HWND;
begin
     Gameh:=FindWindow(nil,'对对碰角色版' );
     //模拟鼠标单击
     SendMessage(Gameh,Messages.WM_LBUTTONDOWN,0,$0180017A);//按下
     SendMessage(Gameh,Messages.WM_LBUTTONUP, 0, $0180017A);//抬起
end;

end.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蚂蚁_CrkRes

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值