我编写了一个c++片段来模拟鼠标点击,如下所示。
INPUT mouseData[2];
ZeroMemory(mouseData, sizeof(mouseData));
mouseData[0].type = INPUT_MOUSE;
mouseData[0].mi.dx = xx;
mouseData[0].mi.dy = yy;
mouseData[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
mouseData[0].mi.mouseData = 0;
mouseData[0].mi.time = 0;
mouseData[1].type = INPUT_MOUSE;
mouseData[1].mi.dx = 10;
mouseData[1].mi.dy = 10;
mouseData[1].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
mouseData[1].mi.mouseData = 0;
mouseData[1].mi.time = 0;
SendInput(1, &mouseData[0], sizeof(INPUT));
Sleep(30);
SendInput(1, &mouseData[1], sizeof(INPUT));但效果不太好。前者的SendInput工作,但后者的SendInput不工作。为什么?
另一个:我尝试了SendInput,如下所示
上面的效果很好。但如果没有2,它就不起作用。为什么?
发布于 2017-04-22 18:46:29
在有效标志的其描述中,MSDN不是超级有用的。
该成员中的位可以是以下值的任何合理组合。
我个人不认为在同一个输入命令中同时使用down和up标志是合理的。为了实现与所有应用程序的最大兼容性,可以像普通用户那样执行操作:移动、向下按钮,最后按下按钮。
如果要执行大量鼠标操作,我建议您创建一个执行这三个输入步骤的助手函数。
https://stackoverflow.com/questions/43561997
复制相似问题