Главная страница » Управление мышью python

Управление мышью python

Управление мышью в Python чаще всего используется для автоматизации рутинных задач, тестирования, создания скриптов для игр или автоматизации взаимодействия с графическим интерфейсом пользователя (GUI).

В стандартной библиотеке Python нет встроенных модулей для прямого управления мышью, поскольку это низкоуровневые операции, зависящие от операционной системы. Поэтому для этих целей используются сторонние библиотеки.

Наиболее популярные и мощные библиотеки для управления мышью (и клавиатурой) в Python:

Pyautogui: Самая популярная и многофункциональная библиотека для автоматизации GUI. Pynput: Предоставляет более низкоуровневый контроль и мониторинг ввода.

Давайте рассмотрим pyautogui как наиболее универсальное решение для большинства задач.

1. Pyautogui (Рекомендуемый для большинства задач)

Pyautogui позволяет перемещать курсор, выполнять клики, перетаскивать, скроллить и т. д.

Установка:

Bash

Pip install pyautogui

Важные функции и примеры использования:

Python

Import pyautogui

Import time

# — Настройки безопасности (рекомендуется) —

# pyauogui. FAILSAFE = True # Включить защиту от зацикливания: переместите мышь в верхний левый угол экрана, чтобы остановить скрипт

# pyautogui. PAUSE = 0.5 # Задержка в 0.5 секунды после каждого вызова функции PyAutoGUI

Print("Начинаем управление мышью…")

# — Получение текущего положения курсора —

X, y = pyautogui. position()

Print(f"Текущая позиция курсора: X={x}, Y={y}")

# — Перемещение курсора —

# Переместить курсор в абсолютную позицию (x=100, y=100) за 1 секунду

Print("\nПеремещаем курсор в (100, 100)…")

Pyautogui. moveTo(100, 100, duration=1)

Time. sleep(1) # Задержка для демонстрации

# Переместить курсор относительно текущей позиции (на 50 пикселей вправо, на 0 пикселей вверх/вниз)

Print("Перемещаем курсор относительно (+50, 0)…")

Pyautogui. move(50, 0, duration=0.5) # или pyautogui. moveRel()

Time. sleep(1)

# — Клики мышью —

# Простой клик (левая кнопка по умолчанию)

Print("\nВыполняем клик (левая кнопка)…")

Pyautogui. click()

Time. sleep(1)

# Клик в определенной позиции

Print("Выполняем клик в (200, 200)…")

Pyautogui. click(x=200, y=200)

Time. sleep(1)

# Двойной клик

Print("Выполняем двойной клик…")

Pyautogui. doubleClick()

Time. sleep(1)

# Клик правой кнопкой

Print("Выполняем клик правой кнопкой…")

Pyautogui. rightClick()

Time. sleep(1)

# Клик средней кнопкой

Print("Выполняем клик средней кнопкой…")

Pyautogui. middleClick()

Time. sleep(1)

# Нажатие и отпускание кнопки мыши (для перетаскивания)

Print("Нажимаем левую кнопку…")

Pyautogui. mouseDown()

Time. sleep(0.5)

Print("Отпускаем левую кнопку…")

Pyautogui. mouseUp()

Time. sleep(1)

# — Перетаскивание (drag and drop) —

# Переместить курсор в начальную точку

Pyautogui. moveTo(300, 300, duration=1)

Print("\nПеретаскиваем объект из (300, 300) в (400, 400)…")

# Перетащить на 100 пикселей вправо и 100 пикселей вниз

Pyautogui. dragRel(100, 100, duration=1) # или pyautogui. dragTo(400, 400, duration=1)

Time. sleep(1)

# — Скроллинг (прокрутка колесика мыши) —

# Прокрутить вверх на 100 единиц

Print("\nПрокручиваем вверх на 100 единиц…")

Pyautogui. scroll(100)

Time. sleep(1)

# Прокрутить вниз на 50 единиц

Print("Прокручиваем вниз на 50 единиц…")

Pyautogui. scroll(-50)

Time. sleep(1)

Print("\nЗавершено управление мышью.")

Важные моменты при использовании Pyautogui:

    Координаты: Координаты (0,0) находятся в верхнем левом углу экрана. Положительные X идут вправо, положительные Y идут вниз. Длительность: Использование параметра duration делает движения мыши более плавными и естественными, что полезно для демонстраций или когда нужно имитировать человеческий ввод. Без duration движения происходят мгновенно. Ошибки и FAILSAFE: Если вы запускаете скрипт pyautogui и он начинает делать что-то не то (например, зацикливается), вы можете быстро переместить курсор мыши в Самый верхний левый угол экрана (координаты 0,0). По умолчанию pyautogui обнаружит это и вызовет pyautogui. FailSafeException, останавливая скрипт. Это спасательная функция. Задержки: Используйте time. sleep() между операциями или установите pyautogui. PAUSE, чтобы дать время операционной системе и приложениям отреагировать на действия мыши.

2. Pynput (Для более низкоуровневого контроля и мониторинга)

Pynput позволяет контролировать и мониторить ввод с клавиатуры и мыши. Это может быть полезно для создания слушателей событий мыши.

Установка:

Bash

Pip install pynput

Пример (перемещение и клик):

Python

From pynput. mouse import Controller, Button

Import time

Mouse = Controller()

Print(f"Текущая позиция курсора: {mouse. position}")

# Перемещаем курсор

Mouse. position = (100, 100)

Print(f"Новая позиция курсора: {mouse. position}")

Time. sleep(1)

# Нажимаем левую кнопку

Mouse. press(Button. left)

Time. sleep(0.1)

# Отпускаем левую кнопку

Mouse. release(Button. left)

Print("Клик выполнен.")

# Прокрутка

# mouse. scroll(0, 2) # Прокрутить вверх на 2 единицы

# Слушатель событий мыши (более сложный пример)

# from pynput import mouse

#

# def on_move(x, y):

# print(‘Мышь перемещена до {0}’.format((x, y)))

#

# def on_click(x, y, button, pressed):

# print(‘{0} в {1} {2}’.format(

# ‘Нажата’ if pressed else ‘Отпущена’,

# (x, y),

# button))

# if not pressed:

# # Остановить слушатель после отпускания кнопки

# return False

#

# def on_scroll(x, y, dx, dy):

# print(‘Прокрутка {0} в {1}’.format(

# ‘вверх’ if dy > 0 else ‘вниз’,

# (x, y)))

# # return False

#

# # Собираем события до тех пор, пока on_click не вернет False

# with mouse. Listener(

# on_move=on_move,

# on_click=on_click,

# on_scroll=on_scroll) as listener:

# listener. join()

Выбор библиотеки:

    Pyautogui: Если ваша основная задача — Автоматизировать действия пользователя (перемещать мышь, кликать, перетаскивать, печатать текст). Это высокоуровневая и простая в использовании библиотека для UI-автоматизации. Pynput: Если вам нужен более Низкоуровневый контроль над вводом или вы хотите Мониторить события мыши/клавиатуры (например, отслеживать движения курсора или клики).

Для большинства задач по автоматизации мыши pyautogui будет более подходящим выбором.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх