[外挂6]在指定位置下棋 SendMessage函数

本文介绍了一种通过发送鼠标消息实现游戏外挂的方法。利用Windows API函数SendMessage模拟鼠标点击,对外挂程序的具体实现进行了详细说明,包括如何获取窗口句柄、发送鼠标按下与释放消息等关键技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

a、鼠标软件模拟,函数SendMessage

b、分析窗口内棋子相对坐标X,Y

c、软件模拟点击棋盘坐标x,y处的棋子

 

::SendMessage(hwnd,WM_LBUTTOMDOWN,0,YX);//hwnd=FindWindow(NULL,游戏标题);

::SendMessage(hwnd,WM_LBUTTOMUP,0,YX);  //PostMessage/mouse_event

>_< : 前面都是直接移动了鼠标,这次要改发送鼠标消息了,这样鼠标不移动也会点击游戏的开始按钮.SendMessage的参数是相对坐标, mouse_event的参数是绝对坐标

 >_< : 新加入一个int 类m_pos变量

复制代码
 1 void CFewDlg::OnButton4() //外挂程序
 2 {
 3     CString POS;//
 4     GetDlgItemText(IDC_EDIT5,POS);//从编辑框读取数据到POS
 5     m_pos=atoi(POS);//将POS转换成int类
 6     UpdateData(false); //更新数据
 7 
 8     int   x=50+m_pos%3*100,y=50+m_pos/3*100;                           //定义座标点
 9     HWND hwnd=::FindWindow(NULL,"井字棋");      //查找窗口
10     int lparam;                                 //定义座标点变量
11     lparam=(y<<16)+x;                      //表示指定格,Y<<16是左移16位,发消息用的Y座标点
12     ::SendMessage(hwnd,WM_LBUTTONDOWN,0,lparam);//鼠标按下消息
13     ::SendMessage(hwnd,WM_LBUTTONUP,0,lparam);  //鼠标抬起消息
14 }
复制代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值