mouse.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #test mouse lib
  2. import sys
  3. import time # Зависисмоти для работы проекты
  4. from pynput.mouse import Button, Controller # Библиотека автоматизации действий клавиатуры установка.. в пакетнике pip install pyautogui
  5. from pynput.keyboard import Controller as KeyboardController
  6. import datetime
  7. import pyautogui
  8. import time
  9. import math
  10. def move_to(x, y, duration=1, steps=50):
  11. """
  12. Плавное перемещение курсора к координатам (x, y) за заданное время.
  13. :param x: Конечная координата X
  14. :param y: Конечная координата Y
  15. :param duration: Длительность перемещения в секундах (по умолчанию 0.5)
  16. :param steps: Количество шагов анимации (по умолчанию 50)
  17. """
  18. mouse = Controller()
  19. start_x, start_y = mouse.position
  20. for i in range(steps + 1):
  21. # Вычисляем прогресс от 0 до 1
  22. progress = i / steps
  23. # Применяем плавную кривую (например, квадратичную)
  24. # Можно использовать другие easing-функции для разного эффекта
  25. smooth_progress = progress ** 2 # Квадратичное замедление
  26. # Вычисляем промежуточные координаты
  27. current_x = start_x + (x - start_x) * smooth_progress
  28. current_y = start_y + (y - start_y) * smooth_progress
  29. # Перемещаем курсор
  30. mouse.position = (current_x, current_y)
  31. # Небольшая задержка для плавности
  32. time.sleep(duration / steps)
  33. def move_rel(dx, dy, duration=3, steps=100):
  34. """
  35. Плавное перемещение курсора на заданное расстояние от текущего положения.
  36. :param dx: Смещение по оси X (в пикселях)
  37. :param dy: Смещение по оси Y (в пикселях)
  38. :param duration: Длительность перемещения в секундах (по умолчанию 1)
  39. :param steps: Количество шагов анимации (по умолчанию 50)
  40. """
  41. mouse = Controller()
  42. start_x, start_y = mouse.position
  43. target_x = start_x + dx
  44. target_y = start_y + dy
  45. for i in range(steps + 1):
  46. # Вычисляем прогресс от 0 до 1
  47. progress = i / steps
  48. # Применяем плавную кривую (квадратичное замедление)
  49. smooth_progress = progress ** 2
  50. # Вычисляем промежуточные координаты
  51. current_x = start_x + dx * smooth_progress
  52. current_y = start_y + dy * smooth_progress
  53. # Перемещаем курсор
  54. mouse.position = (current_x, current_y)
  55. # Небольшая задержка для плавности
  56. time.sleep(duration / steps)
  57. def get_mouse_position():
  58. """Возвращает текущие координаты курсора мыши (x, y)."""
  59. mouse = Controller()
  60. return mouse.position