2010-08-23 46 views
32

Tôi hiện đang trong quá trình làm cho Nintendo Wiimote của mình (buồn thực sự) để làm việc với máy tính của tôi như một con chuột. Tôi đã xoay sở để điều khiển thanh nunchuk thực sự di chuyển chuột lên và xuống, trái và phải trên màn hình! Điều này thật thú vị. Bây giờ tôi đang bị mắc kẹt.Mô phỏng Nhấp chuột trên Python

Tôi muốn nhấp chuột trái/phải trên mọi thứ thông qua python khi tôi nhấn A, Khi tôi tìm kiếm, Tất cả những gì bạn nghĩ ra là tkinter?

Vì vậy, câu hỏi của tôi là, Tôi nên gọi gì để tạo cú nhấp chuột trái/phải trên màn hình và nếu có thể, có thể cung cấp một đoạn mã?

Cảm ơn sự giúp đỡ của bạn!

LƯU Ý: Tôi đoán tôi quên đề cập đến điều này là dành cho Linux.

+2

Đây sẽ là OS/cửa sổ hệ thống phụ thuộc có lẽ. Lý tưởng nhất, sẽ có các ràng buộc python vào hệ thống cửa sổ hệ điều hành của bạn. Thông thường, các đối số khá giống với C/C++/C#/Objective-C gọi là tài liệu thực sự được viết. Hoặc bạn có thể may mắn và có tài liệu python thực tế. Ít nhất đăng hệ điều hành bạn đang sử dụng để mọi người có thể trợ giúp. – aaronasterling

+0

Có lẽ câu trả lời này không liên quan nhưng có lẽ bạn có thể kiểm tra nguồn dự án Sikuli. Nó là jython nhưng ... – joaquin

+0

Trông giống như một dự án đẹp .. bạn đang sử dụng gì để di chuyển chuột? Bạn đang làm điều đó thông qua Python, hoặc theo cách khác? Và, tất nhiên, trên đó OS/DE/WM? Btw, một số lần trước, tôi tìm thấy một trình điều khiển Xorg mà nên cho phép sử dụng Wiimote như một con chuột (cho các dự án bảng tương tác ir-pen), có lẽ nó có thể làm công việc ..? – redShadow

Trả lời

2

Bạn có thể thử giao diện XTE chương trình từ tập lệnh Python.

2

Mở terminal và goto cd/usr/share/pyshared/xoắn/giao thức/chuột
thể kịch bản này __init__.pymouseman.py python sẽ làm việc cho bạn của bạn, kiểm tra xem chúng ra.

4

Gói evdev cung cấp các ràng buộc cho các phần của hệ thống con xử lý đầu vào trong Linux. Nó cũng xảy ra để bao gồm một giao diện pythonic để đầu vào.

Ví dụ về gửi một sự kiện chuyển động tương đối và một chuột trái nhấp với 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

Bạn có thể sử dụng PyMouse mà hiện nay đã sáp nhập với PyUserInput. Tôi đã cài đặt nó thông qua pip:

  1. apt-get install python-pip

  2. pip install pymouse

Trong một số trường hợp nó được sử dụng con trỏ và những người khác nó mô phỏng các sự kiện chuột mà không cần con trỏ.

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 

Bạn cũng có thể chỉ định nút chuột nào bạn muốn sử dụng. Nút ex bên trái:

m.click(x,y,1) 

Hãy nhớ rằng, trên Linux, nó yêu cầu Xlib.

-1

Tôi không thấy điều này được đề cập, vì vậy ở đây nó đi - đó cũng là python-dogtail; xem:

Nó đòi hỏi "Enable công nghệ hỗ trợ" trong Gnome Desktop - nhưng có thể về nguyên tắc lấy ví dụ tên của các nút GUI của một ứng dụng và cho phép các nhấp chuột ảo trên chúng (thay vì thông qua các tọa độ x/y).

0

Bạn có thể cài đặt các mô-đun tự động hóa PyAutoGUI GUI từ PyPI (chạy pip install pyautogui) và sau đó gọi các pyautogui.click() bấm vào dấu X nhất định và Y tọa độ của màn hình:

>>> import pyautogui 
>>> pyautogui.click(50, 100) 
>>> pyautogui.moveTo(200, 200) 

PyAutoGUI hoạt động trên Windows, Mac, và Linux, và trên Python 2 và 3. Nó cũng có thể mô phỏng bàn phím, kéo chuột, chụp ảnh màn hình và thực hiện nhận dạng hình ảnh đơn giản của ảnh chụp màn hình.

tài liệu đầy đủ tại https://pyautogui.readthedocs.org/

3

PyAutoGui làm việc tuyệt vời .. Nhờ Al Sweigart ...

Một ví dụ của tôi ...

import pyautogui 

pyautogui.FAILSAFE = False 

for x in range(555, 899): 
    pyautogui.moveTo(x, x) 
Các vấn đề liên quan