发送输入不连续工作



我已经写了一个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如下

  1. 鼠标的呼叫发送instut
  2. 在屏幕的任何位置手动单击鼠标。
  3. 致电sendInput

上面效果很好。但是没有2,它行不通。为什么?

msdn在其对有效标志的描述

中并不有用

此成员中的位可以是以下值的任何合理组合。

我个人不会说在同一输入命令中同时使用向下和向上标志是合理的。要获得与所有应用程序的最大兼容性,请像普通用户一样执行操作:移动,按钮向下移动,最后按钮向上。

我建议您创建一个辅助函数,如果您要进行大量鼠标操纵,可以执行这三个输入步骤。

最新更新