风居住de的街道

c++实现xx游戏大厅连连看自动开局

要实现自动开局,我们第一步需要找到开局按钮的xy坐标值,然后调用windows的鼠标点击按钮实现即可。下面我们来具体操作一下。

第一步使用SPY++获取游戏窗口标题.

 

 第二步拦截窗口的单击消息,在spy++查找窗口下选择消息。然后在只选则如下两个消息控件

 

 点击开始按钮如下如图,根据图我们可以知道开始按钮的x=661,y=568

 

双击第一行,查看函数的参数。根据lParam(16进制)的值。其实238的十进制就是568,295的十进制就是661,lParam高八位存的是y的值,低八位存的是x的值

 

 有了以上的值,我们就可以编写我们的代码,实现自动开据功能了,主要代码如下:

//取窗口句柄

gameh=::FindWindow(NULL,L"xx - 连连看角色版");

//读出游戏窗口信息

 ::GetWindowRect(gameh,&r1);
 //保存当前鼠标位置
 GetCursorPos(&p);
 //设置鼠标指针位置  取开局所在坐标:x=661;y=568 
 SetCursorPos(661+r1.left,568+r1.top);
 //模拟鼠标的单击
 //鼠标按下
 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
 //鼠标抬起
 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
 //还原鼠标位置
 SetCursorPos(p.x,p.y);

 

posted on 2020-10-25 21:35  风居住de街道  阅读(209)  评论(0编辑  收藏  举报

导航