2010-06-06 11 views
11

ProblemSymulacja ruch myszy w Ubuntu

szukam automatycznie przesunąć kursor myszy i symulować kliknięcia przycisków myszy z linii poleceń przy użyciu skryptu zewnętrznego. Ja nie chce:

  • ruch Record mysz i odtwarzania (np xnee, xmacro)
  • natychmiast przesunąć mysz z jednego miejsca do innego (np xdotool, warp_pointer Pythona)

idealne rozwiązanie

Co chciałbym zrobić to:

  1. Edycja prostego pliku skryptu (np. mouse-script.txt).
  2. Dodaj listę współrzędnych, prędkości ruchu, opóźnień i kliknięć przycisku. Na przykład:
     
    (x, y, rate) = (500, 500, 50) 
    sleep = 5 
    click = left 
    
  3. Uruchom skrypt: xsim < mouse-script.txt.

Pytanie

Jak zautomatyzować ruch myszy tak, że przechodzi z bieżącej lokalizacji do innego miejsca na ekranie, przy określonej prędkości? Na przykład:

xdotool mousemove 500 500 --rate 50 

--rate 50 nie istnieje z xdotool.

Odpowiedz

13
  1. Pobierz xaut dla Pythona
  2. Postępuj zgodnie z instrukcjami README
  3. Run:
     
    sudo apt-get install swig x11proto-xext-dev libx11-dev libxtst-dev 
    cd /usr/local/src 
    tar zxf xaut-0.2.0.tar.gz 
    ./configure 
    
  4. Edytuj src/Makefile
  5. Zmiana CFLAGS linia następująco:
     
    CFLAGS = -Wall -fPIC -fno-stack-protector
  6. Run:
     
    make 
    
  7. Kopiuj /usr/local/src/xaut-0.2.0/python/build/lib/* do nowego katalogu.
  8. Przejdź do tego nowego katalogu.
  9. Kopiuj i wklej poniższy skrypt do mm.py:
     
    import xaut 
    mouse = xaut.mouse() 
    delay mouse.move_delay(100) 
    mouse.move(500, 500) 
    
  10. Uruchom skrypt:
     
    python mm.py
+0

Ponadto, po wykonaniu czynności abobe nie powiedzie się w systemie Ubuntu 11.10. Przede wszystkim w moim przypadku w makefile musiałem dodać bezwzględną ścieżkę do libX11.so, której nie ma w/usr/local/lib, jak sugeruje plik Makefile, ale w usr/local/lib/i386-linux-gnu. Następnie, gdy naprawisz, że może on ponownie skompilować. Więc zmień ld -shared na gcc -shared w makefile i to jest to –

+0

Każdy pomysł, jak wykonać takie zadania * bez * zewnętrznych bibliotek/narzędzi? – Jewenile

6

w nowszych wersjach Ubuntu (14.04+), można użyć Autopilot, narzędzie do testowania UI dla Ubuntu. Jest przeznaczony do tworzenia i uruchamiania testów interfejsu użytkownika, ale może być również używany do podstawowych zadań automatyzacji GUI.

zainstalować:

$ sudo apt-get install python3-autopilot 

przykład skrypt (Python3) zautomatyzować mouse movement:

#!/usr/bin/env python3 

from autopilot.input import Mouse 

mouse = Mouse.create() 
mouse.move(100, 50) 
mouse.click() 

by uruchomić to jak każdy inny skrypt Python3. Obserwuj ruch wskaźnika myszy!