用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); 利用这段代码就正确实现了开始按钮的点击! |
|
来自: 昵称15242507 > 《C#》