Вы захотите использовать какой-нибудь таймер с обратным вызовом, чтобы шаг за шагом двигать мышь. Что касается самого движения, у вас есть мир возможностей, но это все математика.
Итак, давайте разберем проблему.
Что такое естественное движение мыши?
Скорость изменения позиции
Это не обязательно выглядит так, но когда вы двигаете мышью, вы просто устанавливаете ее положение несколько раз в секунду.
Количество изменений позиции в секунду эквивалентно скорости опроса вашей мыши. Частота опроса по умолчанию для мышей USB составляет 125 Гц (или 125 изменений положения в секунду, если хотите). Это значение мы будем использовать для нашего таймера: его обратный вызов будет вызываться 125 раз в секунду.
var timer = new Timer(1000 / 125d);
timer.Elapsed += MoveMouse;
void MoveMouse(object sender, ElpasedEventArgs e) { }
Скорость и ускорение
При перемещении мыши расстояние между двумя положение курсора не является постоянным, потому что вы быстры, когда начинаете двигать мышь, но замедляетесь, когда приближаетесь к предмету, на котором хотите, чтобы курсор был включен.
Лично я лично могу двумя способами обычно перемещайте мою мышь в зависимости от контекста / настроения:
- Одно быстрое равномерное движение, чтобы приблизиться к пункту назначения, затем одно медленное, чтобы исправить и войти в него (я обычно go мимо пункт назначения во время первого хода)
- Одно средне-медленное движение с небольшим замедлением, за которым следует более сильное замедление в конце
Общая скорость движения также зависит от трех факторов :
- Расстояние между курсором и пунктом назначения
- Размер области назначения
- Ваша личная скорость