1

使用 Sendinput 方法时是否可以控制鼠标指针的速度?

例如这是我的代码:

    public static void ClickMouseDOWN(int x, int y)
    {
        INPUT mouseInput = new INPUT();
        mouseInput.type = (int)InputType.INPUT_MOUSE;
        mouseInput.mi.dx = CalculateAbsoluteCoordinateX(x);
        mouseInput.mi.dy = CalculateAbsoluteCoordinateY(y);
        mouseInput.mi.mouseData = 0;

// mouse teleports instantly
            mouseInput.mi.dwFlags = (int)MOUSEEVENTF.MOVE | (int)MOUSEEVENTF.ABSOLUTE;
            SendInput(1, new INPUT[] { mouseInput }, Marshal.SizeOf(mouseInput));
// mouse teleports instantly

        mouseInput.mi.dwFlags = (int)MOUSEEVENTF.LEFTDOWN;
        SendInput(1, new INPUT[] { mouseInput }, Marshal.SizeOf(mouseInput));

    }

以下代码执行 MouseMovement + Mouse Button Press (down) 命令,但问题是指针传送到位置 (int x, int y) 而不是以某个恒定速度移动到该位置。

我希望能够控制那个速度。

4

1 回答 1

-1

我找不到答案,所以最后我不得不使用本机方法:

Cursor.Position = new Point(x, y);

我可以指定Thread.Sleep(Z)何时将光标移动到新位置

于 2012-10-29T09:59:34.377 回答