2010-08-23 4 views
32

Я сейчас в процессе создания моего Nintendo Wiimote (на самом деле, собственно говоря, на самом деле) для работы с моим компьютером в качестве мыши. Мне удалось сделать управление ручкой nunchuk на самом деле перемещать мышь вверх и вниз, слева и справа на экране! Это было так захватывающе. Теперь я застрял.Имитировать щелчки мыши на Python

Я хочу, чтобы левый/правый щелчок на вещах через python, когда я нажимал A, Когда я пошел на поиски, все, что у него было, было tkinter?

Итак, мой вопрос: что мне нужно сделать, чтобы сделать python влево/вправо, щелкнуть по рабочему столу, и если это возможно, возможно, предоставить фрагмент?

Благодарим за помощь!

ПРИМЕЧАНИЕ: Я забыл упомянуть, что это для Linux.

+2

Это будет OS/оконная система зависит вероятно. В идеале, будут привязки python к вашей оконной системе операционной системы. Обычно аргументы очень похожи на вызовы C/C++/C#/Objective-C, на которые фактически написана документация. Или вам может повезти и иметь фактические документы python. По крайней мере, укажите, на какой ОС вы находитесь, чтобы люди могли помочь. – aaronasterling

+0

Возможно, этот ответ не имеет значения, но, возможно, вы можете проверить источник проекта Sikuli. Это jython, но ... – joaquin

+0

Похоже, хороший проект .. что вы используете для перемещения мыши? Вы делаете это через Python или по-другому? И, конечно, на каком OS/DE/WM? Btw, несколько раз назад, я нашел драйвер Xorg, который должен позволить использовать Wiimote в качестве мыши (для проекта интерактивной доски ir-pen), возможно, он мог бы справиться с этой задачей ..? – redShadow

ответ

2

Вы можете попробовать интерфейс XTE программы из сценария Python.

2

Откройте ваш терминал и перейти кд/USR/доли/pyshared/крученые/протоколы/мыши
может это __init__.pymouseman.py питон скрипт будет работать для вас, Проверь их.

4

Пакет evdev предоставляет привязки к частям подсистемы обработки ввода в Linux. Это также включает в себя интерфейс pythonic для 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() 
23

Вы можете использовать PyMouse, которая теперь объединилась с PyUserInput. Я установил его через пип:

  1. apt-get install python-pip

  2. 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.

-1

Я не видел этого, поэтому здесь он идет - есть также python-dogtail; см:

Это требует "Включить вспомогательные технологии" в Gnome Desktop - но в принципе может получить, например, имена кнопок GUI приложения и разрешать им виртуальные клики (а не через координаты x/y).

0

Вы можете установить модуль автоматизации 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/

3

PyAutoGui работает превосходный .. Благодаря Al Sweigart ...

Пример шахты ...

import pyautogui 

pyautogui.FAILSAFE = False 

for x in range(555, 899): 
    pyautogui.moveTo(x, x)