Симулировать щелчки мыши на Python
В настоящее время я работаю над тем, чтобы заставить мой Nintendo Wiimote (на самом деле довольно печально) работать с моим компьютером как с мышью. Мне удалось заставить управление нунчука перемещать мышь вверх и вниз, влево и вправо по экрану! Это было так захватывающе. Теперь я застрял.
Я хочу щелкнуть левой или правой кнопкой мыши на вещах через python, когда я нажимаю A. Когда я пошел искать, все, что он придумал, было tkinter?
Итак, мой вопрос: как мне вызвать Python для левого / правого клика на рабочем столе, и, если это возможно, возможно, предоставить фрагмент?
Спасибо за помощь!
ПРИМЕЧАНИЕ: я думаю, я забыл упомянуть, что это для Linux.
9 ответов
python-uinput очень прост в использовании.
http://tjjr.fi/software/python-uinput/
Вот пример https://github.com/tuomasjjrasanen/python-uinput/blob/master/examples/mouse.py
Вы можете использовать PyMouse, который теперь объединился с PyUserInput. Я установил его через pip:
apt-get install python-pip
pip install pymouse
В некоторых случаях он использовал курсор, а в других он имитировал события мыши без курсора.
from pymouse import PyMouse
m = PyMouse()
m.position() #gets mouse current position coordinates
m.move(x,y)
m.click(x,y) #the third argument "1" represents the mouse button
m.press(x,y) #mouse button press
m.release(x,y) #mouse button release
Вы также можете указать, какую кнопку мыши вы хотите использовать. Ex левая кнопка:
m.click(x,y,1)
Имейте в виду, для Linux требуется Xlib.
Пакет evdev обеспечивает привязки к частям подсистемы обработки ввода в Linux. Также случается включить питонический интерфейс в uinput.
Пример отправки события относительного движения и щелчка левой кнопкой мыши с помощью evdev:
from evdev import UInput, ecodes as e
capabilities = {
e.EV_REL : (e.REL_X, e.REL_Y),
e.EV_KEY : (e.BTN_LEFT, e.BTN_RIGHT),
}
with UInput(capabilities) as ui:
ui.write(e.EV_REL, e.REL_X, 10)
ui.write(e.EV_REL, e.REL_Y, 10)
ui.write(e.EV_KEY, e.BTN_LEFT, 1)
ui.syn()
PyAutoGui работает превосходно.. Благодаря Al Sweigart...
Пример мой...
import pyautogui
pyautogui.FAILSAFE = False
for x in range(555, 899):
pyautogui.moveTo(x, x)
Вы можете установить модуль автоматизации PyAutoGUI GUI из PyPI (запустить pip install pyautogui
), а затем позвоните pyautogui.click()
нажать на определенные координаты X и Y экрана:
>>> import pyautogui
>>> pyautogui.click(50, 100)
>>> pyautogui.moveTo(200, 200)
PyAutoGUI работает в Windows, Mac и Linux, а также в Python 2 и 3. Он также может эмулировать клавиатуру, перетаскивать мышью, делать снимки экрана и выполнять простое распознавание снимков экрана.
Полные документы находятся по адресу https://pyautogui.readthedocs.org/
Откройте свой терминал и перейдите на CD / USR / Share/ Pyshared/ Twisted/ протоколы / мышей
пусть это __init__.py
mouseman.py
скрипт Python будет работать для вас, проверьте их.
Вы можете попробовать интерфейс программы XTE из скрипта Python.
Я не видел упомянутое, так что здесь идет - есть также python-dogtail
; увидеть:
- Автоматическое тестирование графического интерфейса с Dogtail | Красная шляпа
- Тестирование / Автоматизация /DogtailTutorial - Ubuntu Wiki
Требуется "Включить вспомогательные технологии" в Gnome Desktop - но в принципе можно получить, например, имена кнопок графического интерфейса приложения и разрешить виртуальные щелчки по ним (а не через координаты x/y).