Главная chevron_right Функции chevron_right USB chevron_right Mouse.click()

Mouse.click()

Mouse.click() отправляет компьютеру одиночный клик мышью — нажатие и отпускание кнопки за один вызов. По умолчанию кликает MOUSE_LEFT.

Полная статья

Описание

Mouse.click() посылает компьютеру сигнал нажатия и немедленного отпускания кнопки мыши — то есть обычный одиночный клик. Это самый простой способ эмулировать действие мыши: вам не нужно вручную управлять нажатием и отпусканием по отдельности.

Если аргумент button не передан, функция использует левую кнопку — MOUSE_LEFT.

Прежде чем вызывать любые команды Mouse, необходимо инициализировать эмуляцию мыши с помощью Mouse.begin(). Без этого вызова функция не будет работать.

Синтаксис

  • Mouse.click()
  • Mouse.click(button)

Параметры

button: кнопка мыши, которой нужно щёлкнуть. Допустимый тип данных: char.

Доступные значения:

  • MOUSE_LEFT (по умолчанию)
  • MOUSE_RIGHT
  • MOUSE_MIDDLE

Возвращает

Ничего

Пример кода

    #include <Mouse.h>

    void setup() {
      pinMode(2, INPUT);
      //инициализация библиотеки Mouse
      Mouse.begin();
    }

    void loop() {
      //если кнопка нажата, отправить клик левой кнопкой мыши
      if (digitalRead(2) == HIGH) {
        Mouse.click();
      }
    }

Где применяется

  • Кнопка-кликер — физическая кнопка на плате при нажатии отправляет щелчок мышью в активное окно.
  • Автоматизация интерфейса — скетч имитирует серию кликов по расписанию или в ответ на сигнал от датчика.
  • Игровой контроллер — нажатие педали или триггера преобразуется в клик левой или правой кнопкой.
  • Специальные устройства ввода — помощь пользователям с ограниченными возможностями: нестандартный датчик заменяет обычную мышь.

Практические замечания

  • Mouse.click() удобна для одиночного клика. Если нужно удерживать кнопку нажатой — например, для перетаскивания — используйте Mouse.press() и Mouse.release() раздельно.
  • Клик происходит там, где курсор находится в момент вызова. Функция не перемещает курсор сама по себе.
  • Не вызывайте Mouse.click() в каждой итерации loop() без проверки изменения состояния входного сигнала: одно физическое нажатие кнопки породит сотни кликов в секунду. Всегда отслеживайте переход сигнала из одного состояния в другое и добавляйте защиту от дребезга.
  • Начинайте отладку без эмуляции мыши: сначала выводите состояние входов через Serial.print(), убедитесь, что логика работает правильно, и только потом включайте управление курсором.
  • Эмуляция USB-мыши доступна только на платах с нативной поддержкой USB HID — например, Leonardo, Micro, Due и аналогичных. На Uno или Mega эти функции не работают.

Полезные материалы