0
我写了一个C++代码片段来模拟鼠标点击,如下所示。SendInput不能连续工作
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如下鼠标
- 调用SendInput点击
- 手动点击鼠标在屏幕上的任何位置。
- 来电SendInput
以上工作正常。 但没有2,它不起作用。为什么?
对于任何获取鼠标通知的程序来说,这会非常令人困惑。不要同时做所有事情,先移动,然后移动,然后移动。 –
您可以将这些事件放入数组中,以便它们可以以原子方式处理。不要一次发送一个。一次调用SendInput处理所有事件。每个不同的行动你都需要一个事件。阅读文档。 –
您正在设置错误的标志。你确定左边向下和左边的标志可以在单个输入中发送吗? – SMUsamaShah