打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何使用SendMessage函数实现模拟鼠标点击按钮事件?(内有两种代码比较)
 用SPY++获得了QQ连连看的 开始按钮坐标!
利用坐标写了如下代码:
        m_hGame = FindWindow(NULL, "QQ游戏 - 连连看角色版");
        int lparam;
        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;
            gameh=::FindWindow(NULL,"QQ游戏 - 连连看角色版");
            CRect r1;
            ::GetWindowRect(gameh,&r1);
           
            //保存当前鼠标指针
               //取得当前鼠标位置
            CPoint p;
            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);


利用这段代码就正确实现了开始按钮的点击!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
模拟鼠标发送点击解决方法
MFC子窗口向父窗口发送消息
WIN32无边框窗体的缩放、移动与WM
C#编写QQ木马源码 - QQ资源网
工具栏和状态栏——模仿windows记事本程序Part3
VC++6.0中如何发送自定义消息
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服