新人求点求资源你懂得百度云盘资源

查看: 9296|回复: 8
如何使用SendMessage函数实现模拟鼠标点击按钮事件?(内有两种代码比较)
阅读权限30
普通会员, 积分 296, 距离下一级还需 4 积分
用SPY++获得了QQ连连看的 开始按钮坐标!
利用坐标写了如下代码:
& & & & m_hGame = FindWindow(NULL, &QQ游戏 - 连连看角色版&);
& & & & lparam = ((562)&&16) + 664;
& & & & lparam = ((562)&&16)+(664);
& & & & SendMessage(m_hGame, WM_LBUTTONDOWN, 0, lparam);
& & & & SendMessage(m_hGame, WM_LBUTTONUP, 0, lparam);
& & & & SendMessage(m_hGame, WM_LBUTTONDOWN, 0, lparam);
& & & & SendMessage(m_hGame, WM_LBUTTONUP, 0, lparam);
上述代码不能实现开始按钮的点击这是怎么回事???
上述代码应该是属于软件模拟,所以我尝试了使用硬件模拟:
& & & & & & //获取游戏窗口句柄
& & & & & & HWND
& & & & & & gameh=::FindWindow(NULL,&QQ游戏 - 连连看角色版&);
& & & & & & CRect r1;
& & & & & & ::GetWindowRect(gameh,&r1);
& & & & & &
& & & & & & //保存当前鼠标指针
& & & & & && & //取得当前鼠标位置
& & & & & & CP
& & & & & & GetCursorPos(&p);
& & & & & & //设置鼠标指针位置&&取开局所在坐标:x=655;y=577 //lparam 0x0241028f
& & & & & & SetCursorPos(655+r1.left,577+r1.top);
& & & & & & //模拟鼠标的 单击(鼠标按下/鼠标抬起)
& & & & & & //MOUSEEVENTF_LEFTDOWN Specifies that the left button is down.
& && && && && &//MOUSEEVENTF_LEFTUP
& & & & & & //鼠标在当前位置按下
& & & & & & mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
& & & & & & mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
& & & & & & //鼠标在当前位置抬起
& & & & & & mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
& & & & & & //还原鼠标位置
& & & & & & Sleep(200);//过一段时间 再执行后边的代码
& && && && && & SetCursorPos(p.x,p.y);
利用这段代码就正确实现了开始按钮的点击!
这两段代码在逻辑上应该是一样的,但是为什么有两种不一样的结果产生?
怎么在后台模拟这个开始按钮的点击事件呢?或者如何正确使用SendMessage实现鼠标点击开始按钮这个事件呢?
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限200
SendMessage 改成 PostMessage 试试……
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限60
铜牌会员, 积分 1158, 距离下一级还需 342 积分
教程里讲过,有的程序会检测鼠标的位置来防止自动点击.所以要用硬件的方式进行点击.另外,开始界面程序有一定延时,要有SLEEP .
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限30
普通会员, 积分 296, 距离下一级还需 4 积分
ge1044 发表于
教程里讲过,有的程序会检测鼠标的位置来防止自动点击.所以要用硬件的方式进行点击.另外,开始界面程序有 ...
延迟设置我也有试过还是不行& &应该不会吧我用鼠标模拟点击连连看棋子的时候用SendMessage按键模拟是能够成功的·
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限60
铜牌会员, 积分 1158, 距离下一级还需 342 积分
shy88488 发表于
延迟设置我也有试过还是不行& &应该不会吧我用鼠标模拟点击连连看棋子的时候用SendMessage按键模拟是能够 ...
你再看看郁金香的视频,我记得到最后游戏的界面都去掉了.
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限30
普通会员, 积分 296, 距离下一级还需 4 积分
Syc 发表于
SendMessage 改成 PostMessage 试试……
一样的·············
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限60
铜牌会员, 积分 1341, 距离下一级还需 159 积分
楼主去找一下..鼠标点击也应该有相应的事件,试着去把发送消息那两行代码,换成相应的鼠标点击事件的发起吧...
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限60
铜牌会员, 积分 1341, 距离下一级还需 159 积分
本帖最后由 malliarage699 于
10:58 编辑
原来第二个例子就是事件发起的吖..
个人的理解是这样子,消息发送给对应窗体之后,对应窗体会有对应的消息处理函数.
楼主的情况大概是消息处理函数中,当判断为鼠标点击消息的时候,并没有发起鼠标点击事件.
在windows中,相应的操作,键盘和鼠标的操作,是通过捕获事件,对事件进行处理来完成的.
也就是说,你的每一次操作,键盘和鼠标的操作,如鼠标的左击,左击点击之后,想交给操作系统来完成,即是按操作的做法来完成的话.你应该是发起事件..这大概是因为windows系统中对这些操作的处理并不是在捕获到相应的消息时执行的,而是在获取到相应的事件之后处理的.
所以当你敲击一个键盘按钮的时候,会有一按键消息发送出去,而在这个消息的处理函数中,会帮你发起相应按键的事件.
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限30
普通会员, 积分 296, 距离下一级还需 4 积分
ge1044 发表于
你再看看郁金香的视频,我记得到最后游戏的界面都去掉了.
恩恩还是谢谢了
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
站长提醒 /1
为了能给广大编程爱好者提供一个更好的学习交流平台,从即日起面向广大网友特举办《发原创得奖励》活动。Vip教程,驿站U盘,无线鼠标 免费送,礼品丰厚,赶快来参加吧!
VC驿站微信公众号cctry2009
Powered by Discuz! X3.3}

我要回帖

更多关于 律政新人王百度云资源 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信