View Full Version : programma per far muovere il mouse da solo
salve, c'è un programma per far muovere il mouse da solo, che registri anche il "tempo", oppure che sia possibile inserirlo manualmente?? su google ho trovato solo programmi per windows..
grazie
cosa hai cercato per trovare questo programma per windows?
grazie;)
mouse recorder linux:http://www.google.it/search?hl=it&q=mouse+recorder+linux&btnG=Cerca&meta=lr%3D
ma nessuno è per linux :mbe:
diabolicus
19-01-2008, 13:49
non so se può fare al caso tuo...
apt-cache show xmacro
Package: xmacro
Priority: optional
Section: utils
Installed-Size: 108
Maintainer: Eduard Bloch <blade@debian.org>
Architecture: amd64
Version: 0.3pre-20000911-4
Depends: libc6 (>= 2.3.5-1), libgcc1 (>= 1:4.0.2), libstdc++6 (>= 4.0.2-4), libx11-6, libxtst6
Filename: pool/main/x/xmacro/xmacro_0.3pre-20000911-4_amd64.deb
Size: 19416
MD5sum: a3506d0f809e4ab68560ebb710b01061
SHA1: c601aa9cd0d936ebe3e45c10014495d86d065be3
SHA256: ceab73628769ad91b350df68d6f9e60d16fb35890814733f2d26af3b5e483a6f
Description: Record / Play keystrokes and mouse movements in X displays
xmacrorec can be used to record mouse and keyboard events on any X11 display.
.
xmacroplay can be used to playback recorded events or send any other
mouse/keyboard events you choose. It is very handy for scripting an
X display - for example controlling a presentation in mgp or ultrapoint
from a script, network connection...
.
xmacroplay-keys is a script to help use the above.
.
Together these utils can be used to record and replay sessions
for demonstrations etc.
Tag: hardware::input, interface::x11, role::program, scope::application, use::monitor, use::storing, x11::application
con apt get ho questo risultto:
apt-cache show xmacro
W: Unable to locate package xmacro
E: No packages found
cosi ho scaricato i "sorgenti", http://xmacro.sourceforge.net/ , se do make, mi da errore su un int di una funzione....cmq facendo partire il file, non si capice bene come registrare...:(
diabolicus
19-01-2008, 15:19
se do make, mi da errore su un int di una funzione....cmq facendo partire il file, non si capice bene come registrare...:(
ma che versione hai di debian? io il pacchetto l'ho trovato su testing. per l'uso non saprei, non l'ho nemmeno installato..
ma che versione hai di debian? io il pacchetto l'ho trovato su testing. per l'uso non saprei, non l'ho nemmeno installato..
suse 10.3 :D perciò ho scaricato i file da link che ho scritto.
qualche altro suggerimento su altri programmi?
Certo. Allora, avrei bisogno di un programma che faccia muovere il puntatore del mouse, per posizionarlo in alcuni punti precisi dello schermo. Tipo lascio firefox aperto, e il puntatore si deve spostare in precisi punti di firefox, tipo sul menu segnalibri, poi sul pulsante indietro ecc..Ovviamente la sequenza la registrerei io eseguendola prima muovendo il mouse.
Inoltre deve registrare anche i click che faccio in un determinato punto, tipo mi sposto sui segnalibri clicco, e poi lui deve rifare la stessa cosa.
Alla fine come se il mouse lo muovessi io..solo che io non lo muovo e lo fa lui!
Credo di essere stao chiaro adesso....
ti serve una macro insomma...
prova a guardare qui: http://textver.filehungry.com/italian/product/windows_software/utilities/automation_tools/easy_macro_recorder
dovrebbe fare proprio al caso tuo.
ciao :)
ti serve una macro insomma...
prova a guardare qui: http://textver.filehungry.com/italian/product/windows_software/utilities/automation_tools/easy_macro_recorder
dovrebbe fare proprio al caso tuo.
ciao :)
"installato" con wine...purtroppo anche se sembra registrare la macro, il mouse non si muove quando vado ad eseguirla!! Mi servirebbe qualcosa per linux
ilsensine
20-01-2008, 18:36
So come fare un simile programma (non è complicato), ma per la mia cronica mancanza di tempo non so se troverò il tempo per fartelo.
Se non trovi quello che cerchi prova a farmi un fischio il fine settimana prossimo.
So come fare un simile programma (non è complicato), ma per la mia cronica mancanza di tempo non so se troverò il tempo per fartelo.
Se non trovi quello che cerchi prova a farmi un fischio il fine settimana prossimo.
ok ti ringrazio...se per la sett. prox nn avrò trovato nulla ti contatto! grazie...
cmq una volta sapevo come farlo, ma era in visual basic ( e chi se lo ricorda più!!), ma non credo vada bene su linux :D
http://people.redhat.com/zcerza/dogtail/
Però devi avere qualche conoscenza
EDIT: In realtà è facilissimo, non sapevo che avesse anche un recorder grafico :°D
ilsensine
20-01-2008, 19:58
non è difficile da fare?
no...
ilsensine
21-01-2008, 19:52
In qualsiasi linguaggio che consenta di manipolare strutture di dati e leggere da file, e (per la riproduzione) che consenta di utilizzare le ioctl.
In qualsiasi linguaggio che consenta di manipolare strutture di dati e leggere da file, e (per la riproduzione) che consenta di utilizzare le ioctl.
umg..c'è anche in C: http://www.lilik.it/~mirko/gapil/gapilsu98.html ci do un'occhiata
ilsensine
22-01-2008, 09:13
umg..c'è anche in C: http://www.lilik.it/~mirko/gapil/gapilsu98.html ci do un'occhiata
Vuoi fare tu il programma allora? ;)
Se vuoi provarci, ti dico cosa devi fare.
Vuoi fare tu il programma allora? ;)
Se vuoi provarci, ti dico cosa devi fare.
Certo...ci voglio provare almeno...con qualche dritta magari :D
“Dai ad un uomo un pesce e quello mangerà per un giorno. Insegna ad un uomo come pescare e quello mangerà per il resto della sua vita”.
:D
ilsensine
22-01-2008, 14:23
Certo...ci voglio provare almeno...con qualche dritta magari :D
La cattura è semplice: devi aprire /dev/input/mouse0, e leggerne i dati. I dati sono strutture di tipo input_event (v. /usr/include/linux/input.h). Se il tuo X non rompe i beones volendo l'accesso esclusivo al device, puoi eseguire il programma tranquillamente sotto X (come te ne accorgi? Con un cat /dev/input/mouse0 e muovendo il mouse; se vedi spazzatura è ok; altrimenti se non vedi niente X ha beccato in esclusiva il device, e devi usare una strada un pò diversa). Mano mano che leggi i dati, li salvi in un file aggiungendo anche il timestamp di lettura (non fidarti del campo input_event::time!).
Comincia a fare questo programma; la riproduzione è solo un pelo più complicata, devi usare il driver uinput ed emulare un dispositivo di input di tipo mouse.
La cattura è semplice: devi aprire /dev/input/mouse0, e leggerne i dati. I dati sono strutture di tipo input_event (v. /usr/include/linux/input.h). Se il tuo X non rompe i beones volendo l'accesso esclusivo al device, puoi eseguire il programma tranquillamente sotto X (come te ne accorgi? Con un cat /dev/input/mouse0 e muovendo il mouse; se vedi spazzatura è ok; altrimenti se non vedi niente X ha beccato in esclusiva il device, e devi usare una strada un pò diversa). Mano mano che leggi i dati, li salvi in un file aggiungendo anche il timestamp di lettura (non fidarti del campo input_event::time!).
Comincia a fare questo programma; la riproduzione è solo un pelo più complicata, devi usare il driver uinput ed emulare un dispositivo di input di tipo mouse.
allora, fatto, ma mi dice "permesso negato"....(anche da root)..dobbiamo vedere una strada diversa
ilsensine
22-01-2008, 14:53
No da root non te lo può dire :mbe:
No da root non te lo può dire :mbe:
no no..ho scritto anche da root...cioè sia da utente normale che root nn esce nulla..accesso negato.
proviamo l'altra strada :D
ilsensine
22-01-2008, 16:54
no no..ho scritto anche da root...cioè sia da utente normale che root nn esce nulla..accesso negato.
No aspetta chiariamo questo punto.
Riporta cosa dice
ls -l /dev/input/mouse0
e allega il trace di cat (eseguito da root ovviamente):
strace -o trace.txt cat /dev/input/mouse0 (allega trace.txt)
darkbasic
22-01-2008, 17:40
Da me la periferica giusta è /dev/input/mouse1, mouse0 c'è ma se provo a muovere il mouse non succede nulla...
AnonimoVeneziano
22-01-2008, 17:44
Da me la periferica giusta è /dev/input/mouse1, mouse0 c'è ma se provo a muovere il mouse non succede nulla...
Se sei su un portatile probabilmente è il Touchpad
Ciao
No aspetta chiariamo questo punto.
Riporta cosa dice
ls -l /dev/input/mouse0
e allega il trace di cat (eseguito da root ovviamente):
strace -o trace.txt cat /dev/input/mouse0 (allega trace.txt)
vabbè..scusate ma è periodo di esami e stò un po "fuso"..tra sistemi operativi, e ricerche nn ci capisco più nulla.. :muro:
allora l'output è questo:
> ls -l /dev/input/mouse0
crw-r----- 1 root root 13, 32 22 gen 10:59 /dev/input/mouse0
poi. il comando strace -o trace.txt cat /dev/input/mouse0, non fa nulla..cioè mi fa andare a capo poi basta..muovo il mouse ma nulla. Devo chiudere il terminale per poter scrivere altro!
ilsensine
22-01-2008, 19:07
poi. il comando strace -o trace.txt cat /dev/input/mouse0, non fa nulla..cioè mi fa andare a capo poi basta..muovo il mouse ma nulla. Devo chiudere il terminale per poter scrivere altro!
Ecco bravo, nessun access denied.
Deve esserci ora il file trace.txt, se lo alleghi...
Ecco bravo, nessun access denied.
Deve esserci ora il file trace.txt, se lo alleghi...
io pensavo non l'avesse fatto..eccolo cmq:
ilsensine
22-01-2008, 19:39
io pensavo non l'avesse fatto..eccolo cmq:
Come puoi vedere...
open("/dev/input/mouse0", O_RDONLY|O_LARGEFILE) = 3
...nessun errore.
(...anche se non capisco gli errori su stdout/stderr...bah...)
ilsensine
22-01-2008, 19:41
Prova anche questo e vediamo cosa ti riporta.
Se sotto X non stampa nulla, passa ad una console (ctrl+alt+f1) ed eseguilo da lì.
darkbasic
22-01-2008, 20:19
Se sei su un portatile probabilmente è il Touchpad
Ciao
Sono sul fisso e non ho altre periferiche di input simil-mouse :stordita:
Il bello è che ricordo che fino a poco fa utilizzavo proprio mouse0 (e infatti in xorg.conf avevo quello). Ora da quando ho la matrox dualhead mi sono dovuto riscrivere xorg.conf a mano e per la fretta non ho specificato il device. Mi sembra strano però che possa dipendere da quello...
Prova anche questo e vediamo cosa ti riporta.
Se sotto X non stampa nulla, passa ad una console (ctrl+alt+f1) ed eseguilo da lì.
fatto..in entrambi i casi l'output è questo:
# ./mousetest
/dev/input/mice: aperto
dopo non c'è nulla..e devo solo chiudere il terminare. cmq ora?
ps guardavo il codice, ma un paio di cose non le ho capite..poi le riguarderò meglio!!!!
ilsensine
22-01-2008, 21:39
Bè a quest'ora le cazzate le faccio anch'io...occorre usare gli evdev, non mice o mouse0. Ne riparliamo domani...
Se ti va di fare qualche verifica, dovresti eseguire il programma come
./mousetest /dev/input/event<n>
(puoi vedere quale "event<n>" corrisponde al tuo mouse leggendo /proc/bus/input/devices)
sia dentro che (mi raccomando) _fuori_ da X.
ilsensine
23-01-2008, 22:57
Puoi provare questo (sotto X) e dirmi che succede?
gurutech
24-01-2008, 08:26
Certo. Allora, avrei bisogno di un programma che faccia muovere il puntatore del mouse, per posizionarlo in alcuni punti precisi dello schermo. Tipo lascio firefox aperto, e il puntatore si deve spostare in precisi punti di firefox, tipo sul menu segnalibri, poi sul pulsante indietro ecc..Ovviamente la sequenza la registrerei io eseguendola prima muovendo il mouse.
ciao!
oggi ho letto di questo:
http://www.tuxjournal.net/?p=2283
http://www.iopus.com/imacros/firefox/
vedi se fa al caso tuo.
ciao!
oggi ho letto di questo:
http://www.tuxjournal.net/?p=2283
http://www.iopus.com/imacros/firefox/
vedi se fa al caso tuo.
già lo provai, ma purtroppo sembra che con firefox su linux, non va! non riesco a registrare perchè il pulsante "record" sembra non attivo..mah
Puoi provare questo (sotto X) e dirmi che succede?
Bè a quest'ora le cazzate le faccio anch'io...occorre usare gli evdev, non mice o mouse0. Ne riparliamo domani...
Se ti va di fare qualche verifica, dovresti eseguire il programma come
./mousetest /dev/input/event<n>
(puoi vedere quale "event<n>" corrisponde al tuo mouse leggendo /proc/bus/input/devices)
sia dentro che (mi raccomando) _fuori_ da X.
vi ringrazio per le risposte..purtoppo da ieri stò fuori casa, e dovrei tornare domani. Quindi domani provo e vi farò sapere..
ilsensine
24-01-2008, 15:15
givi ringrazio per le risposte..purtoppo da ieri stò fuori casa, e dovrei tornare domani. Quindi domani provo e vi farò sapere..
Prova direttamente il secondo che ho allegato. Se funziona, modificarlo per fare quello che ti serve è praticamente un dettaglio.
Prova direttamente il secondo che ho allegato. Se funziona, modificarlo per fare quello che ti serve è praticamente un dettaglio.
grazie..ora lo stavo vedendo..ho modificato il form dal main, altrimenti stampava all'infinito...cmq un output "tipico" è questo:
event 0
event 1
event 2
event 17
event 20
Mouse trovato: /dev/input/event2:
type 1 code 272
type 1 code 273
type 1 code 274
type 1 code 275
type 1 code 276
type 2 code 0
type 2 code 1
type 2 code 6
type 2 code 8
(nessun prececente grab sul mouse)
ignoring event 0
Setting event 1
Setting event 2
ignoring event 17
ignoring event 20
Setting: type 1 code 272
Setting: type 1 code 273
Setting: type 1 code 274
Setting: type 1 code 275
Setting: type 1 code 276
Setting: type 2 code 0
Setting: type 2 code 1
Setting: type 2 code 6
Setting: type 2 code 8
0000: type=2 code=000 value=-3
0000: type=2 code=001 value=1
0000: type=0 code=000 value=0
0011: type=2 code=000 value=-12
0011: type=2 code=001 value=7
0011: type=0 code=000 value=0
0022: type=2 code=000 value=-13
0022: type=2 code=001 value=6
0022: type=0 code=000 value=0
0033: type=2 code=000 value=-13
0033: type=2 code=001 value=7
ma devo capire bene cosa sono questi valori, di preciso. Cmq poi per indirizzare questo output (magari da file) sul mouse come si fa??
ps forse sarà scritto nel codice, ma nn sò molto bene il cpp (buona scusa per impararlo meglio ora!)
ilsensine
25-01-2008, 09:34
Ok tutto a posto.
Mentre il programma è in esecuzione il mouse ti funziona giusto?
Quando ho un attimo di tempo ti preparo la versione per la registrazione e il replay.
ilsensine
26-01-2008, 20:19
Fatto
Trovi questi programmi:
mouserecorder <fileout> [wait time]
mouseplay <filein> [wait time]
Oltre al programma di test mousegrab, che ormai non ci serve più.
Il wait time puoi ometterlo (di default è 10 sec), è un intervallo di attesa che puoi usare per compiere delle operazioni prima della cattura o del play.
NOTA: per essere sicuro che il mouse si trova in una posizione nota all'inizio delle operazioni, viene messo automaticamente nell'angolo in alto a sinistra prima del record o del play. Questo perché i mouse in genere riportano i movimenti come spostamenti relativi, e per essere certi quindi che il play replica quanto registrato, occorre posizionare il mouse in un posto di partenza noto.
(in alternativa avrei dovuto combattere con le Xlib per questa piccola fesseria -- vade retro).
va bene...unica cosa è che non ho capito come arrestare la registrazione oppure la riproduzione. C'è nel while, la variabile now....quindi registra mentre now è diversa da 0....ma come diventa 0???
ilsensine
27-01-2008, 14:00
...non diventa mai zero :D
Per arrestare, interrompi il programma (ctrl+c dentro la shell da cui l'hai lanciato)
...non diventa mai zero :D
Per arrestare, interrompi il programma (ctrl+c dentro la shell da cui l'hai lanciato)
magari ci trovo qualche condizione di stop...oppure il modo per eseguire l'esecuzione più volte...e se ho tempo ci faccio sopra un'iinterfaccia grafica...poi lo posto..OVVIAMENTE specificando te come autore..me come "grafico" :asd:
seriamente ti ringrazio per l'aiuto, dubito che qualcuno avrebbe scritto un programma cosi per uno che non conosce proprio. Ti ringrazio :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.