-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Giorgio Luciani ha scritto: > Gianluca ha scritto: >> Giorgio Luciani ha scritto: >>> [EMAIL PROTECTED] ha scritto: >>>> Salve a tutti, >>>> ho la necessità di scrivere un programmino C che sia ingrado di >>>> leggere ciò che una tastiera USB invia. >>>> Il dispositivo non è proprio una tastiera ma un lettore di tessere che >>>> viene visto da Linux (e da Windows) come una testiera USB e quindi se >>>> eseguo una lettura mentre è aperto un editor di testo, sullo schermo >>>> mi compare la sequenza numerica letta e poi va a capo. >>>> Purtroppo io deve intercettare questo evento in background ed eseguire >>>> successivi processi. >>>> Qualcuno può darmi qualche spunto? Ho iniziato a vedere il sorgente di >>>> un keylogger ma è troppo maestoso rispetto a ciò che serve a me. >>>> >>>> Grazie a tutti, >>>> Gianluca >>>> >>>> >>> Ciao, in generale becchi l'output semplicemente con un cat sul device >>> corretto in /dev/input/ (nel mio caso, per la tastiera ps2, >>> /dev/input/event0) e puoi redirigerlo come ti pare (ad es. via pipe) >>> (devi essere root o comunque avere i diritti in lettura). >>> Per trovare a realtime il nome esatto del device usb puoi provare a fare >>> un grep su >>> cat /proc/bus/input/devices >>> Il problema è poi interpretare i raw data ottenuti come stringhe di >>> caratteri. >>> Prova a vedere qui, per farti un'idea: >>> http://www.linuxquestions.org/questions/showthread.php?t=454869 >>> http://www.redsend.org/?p=142 >>> My two cents >> >> Grazie per la risposta. >> Avevo gia provato a stampare l'output di /dev/input/etc...etc... ma >> non era tanto comprensibile! >> Ho visto il link che mi hai dato e cercherò di trasformare lo script >> Python in C...o in PHP!:) >> >> Grazie ancora, se hai novità fammi sapere! >> >> Gianluca >> > A mio avviso l'idea del file che è stata proposta è piuttosto inutile. > Farei tutto via pipe o chiamate dirette all'interno del codice. Il > problema non è dove passi i dati, ma come li converti. > Provo a dare una piccola idea, presa scopiazzando un po' qua e là . > Ti fai un header file con qualcosa tipo: > > *char* *decod_key*(*int* key); > > *const* *char* *decode_key*(*int* key) { > *switch*(key){ > case(2): *return* *'1'*; *break*; //* num row *// > case(3): *return* *'2'*; *break*; > case(4): *return* *'3'*; *break*; > case(5): *return* *'4'*; *break*; > ... ... > ... ... > } > } > Per avere le associazioni giuste con le tastiere italiane, prova a scaricarti > lkl: > http://sourceforge.net/projects/lkl/ > (Mai provato, ma visti i sorgenti: nella dir "keymaps" dovrebbero esserci le > mappature per la tastiera italiana. > Ogni carattere che leggi lo passi a decode_key e poi lo stampi, lo logghi, lo > passi a quel che ti pare. > Ho scritto idiozie? Spero di no, ma non sono un programmatore c. Magari hai > più successo su qualche ng specifico. > My (now) four cents. > Saluti > > > Grazie per il tuo consiglio. Giorni fa sono partito proprio da lkl e stavo dando uno sguardo ai sorgenti ma da quello che ho capito lkl usa l'indirizzo fisico della tastiera e non il file di input quindi non sò se mi può essere utile.
Gianluca - -- echo aculnaiG | awk 'BEGIN { FS = "" } { for (i = NF; i >= 1; i-- ) printf $i }'; echo -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGnHmBK1z3HmyB2QIRAub3AJ927jYKhFt9HNiZKMOYUHjcnsL/7wCfREUn Rv/LDXTeh3wxzNUMWq2cMkI= =pxnF -----END PGP SIGNATURE----- -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]