Согласно документации на MOUSEINPUT , dx / dy являются относительными координатами, если MOUSEEVENTF_ABSOLUTE не установлен в dwFlags.Попробуйте:
buffer->mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
и посмотрите, работает ли это.Обратите внимание, что вам придется преобразовать X / Y в нормализованные абсолютные координаты из 0-65535, как указано в документации.
Я бы также спросил, почему вы сначала устанавливаете позицию (-3000, -3000).Я также думаю, что вам не нужен магический фактор MOUSE_MOVE_FACTOR, который, вероятно, связан со смешением относительных / абсолютных координат мыши.
Редактировать: перечитать ваш вопрос, и я пропустил, что вы можете использовать относительную мышьпозиция нарочно.Я полагаю, что ваше абсолютное позиционирование могло быть неудачным из-за отсутствия нормализованной абсолютной координаты (я бы сам не догадался, не прочитав всю документацию).Также обратите внимание, что 1680x0,66 = 1109, что подозрительно близко к 1024, и я могу предположить, что игра работает с 1024x?разрешение.