Настоящая проблема в том, что когда я пытаюсь переместить его вправо на 200, он перемещается на 493!
Почему это происходит? и как мне обеспечить согласованность в обоих направлениях?
Код: Выделить всё
[DllImport("user32.dll")]
private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
private static extern bool GetCursorPos(out MousePoint lpMousePoint);
public static MousePoint GetCursorPosition()
{
var gotPoint = GetCursorPos(out MousePoint currentMousePoint);
if (!gotPoint)
currentMousePoint = new MousePoint(0, 0);
return currentMousePoint;
}
public void MouseEvent(MouseEventFlags value)
{
MousePoint position = GetCursorPosition();
mouse_event((int)value, position.X, position.Y, 0, 0);
}
// Move to the left
SetCursorPos(1600, 180);
MouseEvent(MouseEventFlags.LeftDown | MouseEventFlags.Absolute);
Thread.Sleep(300);
MouseEvent(MouseEventFlags.Move, -200, 0);
MouseEvent(MouseEventFlags.LeftUp | MouseEventFlags.Absolute);
GetCursorPos(out MousePoint npt);
Thread.Sleep(300);
// Move to the right
Thread.Sleep(300);
SetCursorPos(1240, 180);
MouseEvent(MouseEventFlags.LeftDown | MouseEventFlags.Absolute);
Thread.Sleep(300);
MouseEvent(MouseEventFlags.Move, 128, 0);
MouseEvent(MouseEventFlags.LeftUp | MouseEventFlags.Absolute);
Thread.Sleep(300);
Подробнее здесь: https://stackoverflow.com/questions/797 ... directions
Мобильная версия