c++如何模拟鼠标的拖动(android模拟器解锁)

闲鱼大叔 2013-08-21 12:17:53
首先声明下:我要操作的是别人的窗口,且这个窗口并非一直在顶层,他会被别的窗口覆盖住,所以通过SetCursorPos和mouse_event 来实现的方法就不行了。

我现在的具体做法如下:
先通过窗口标题枚举出窗口的hwnd,
然后通过如下来实现:
PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(40,380));
PostMessage(hWnd, WM_MOUSEMOVE, MK_LBUTTON, MAKELPARAM(240,380));
PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(240,380));
如上写法,发现只有按下弹起是起作用的,这个WM_MOUSEMOVE没有用,窗口的(40,380)位置有个锁,我要拖动到(240,380)后才会解锁

请教具体要怎么做呢?
...全文
432 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
闲鱼大叔 2013-08-25
  • 打赏
  • 举报
回复
没有哪位大哥知道咋整的吗,测试可行就结贴了
闲鱼大叔 2013-08-24
  • 打赏
  • 举报
回复
引用 8 楼 gz455467678 的回复:
弱弱的问一下。。。mousemove 可以用setCursorPos或者直接movewindow可以不
可以的,就是要窗口置顶,我是要操作后台窗口
waitoneminute 2013-08-22
  • 打赏
  • 举报
回复
弱弱的问一下。。。mousemove 可以用setCursorPos或者直接movewindow可以不
呀呀的呀 2013-08-22
  • 打赏
  • 举报
回复
引用 5 楼 woshinia 的回复:
windows的消息机制本来就是用作反馈的,所以并不是每个消息都能反向操作的,并且消息机制是一般都是有焦点的情况,无焦点情况下有些消息是会被忽略的。 所以,只能改机制了,可以试试dll注入,不过比较复杂。
拖动操作不能模拟吗, 不能模拟的话,我就是写了钩子程序,该怎么才能实现呢?
wjjll123 2013-08-22
  • 打赏
  • 举报
回复
做法有问题吧。。。你发消息过去,在我的理解来看,就是鼠标按下,时间走完之后又鼠标移动,然后又鼠标弹起。。。实际上这三个事件没有什么关联啊。你发过去消息只不过跑了一次这三个函数而已,并不是响应的按键啊。。。 楼主是想模拟组合键的吧?来达到鼠标长按滑动解锁的效果吧?可以找一下按组合键怎么做的。以前弄过,不太记得了。模拟那个试试看,如果不行的话我也不知道了。
woshinia 2013-08-22
  • 打赏
  • 举报
回复
windows的消息机制本来就是用作反馈的,所以并不是每个消息都能反向操作的,并且消息机制是一般都是有焦点的情况,无焦点情况下有些消息是会被忽略的。 所以,只能改机制了,可以试试dll注入,不过比较复杂。
闲鱼大叔 2013-08-21
  • 打赏
  • 举报
回复
哦,no不要沉啊,哪位哥们知道的给顶一下啊
闲鱼大叔 2013-08-21
  • 打赏
  • 举报
回复
引用 2 楼 max_min_ 的回复:
http://bbs.csdn.net/topics/390539928 这个帖子也是这个问题的, 你看看有没有你要的信息
首先感谢你,但是没有我想要的
max_min_ 2013-08-21
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390539928 这个帖子也是这个问题的, 你看看有没有你要的信息
闲鱼大叔 2013-08-21
  • 打赏
  • 举报
回复
自己顶一下,没有大神解答下的吗

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧