Differenze tra le versioni di "Intercettare i dati del mouse dal file-device hidraw"
(Creata pagina con "Il file-device ''/dev/hidraw'' fornisce un'interfaccia non elaborata a dispositivi di interfaccia umana (HID) come l'USB e il Bluetooth. I report sono inviati e ricevuti dal d...") |
|||
(10 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
Il file-device ''/dev/hidraw'' fornisce un'interfaccia non elaborata a dispositivi di interfaccia umana (HID) come l'USB e il Bluetooth. I report sono inviati e ricevuti dal dispositivo non modificati. | Il file-device ''/dev/hidraw'' fornisce un'interfaccia non elaborata a dispositivi di interfaccia umana (HID) come l'USB e il Bluetooth. I report sono inviati e ricevuti dal dispositivo non modificati. | ||
+ | <BR>Il nome del file-device termina con un numero d'indice: ''/dev/hidraw(n)'' | ||
− | Leggendo questo file- | + | Leggendo questo file-device è possibile intercettare i dati grezzi dal mouse, che possono essere la direzione dello spostamento del mouse e la pressione sui tasti. |
− | + | Mostriamo qualche esempio pratico. | |
− | Mostriamo | ||
<BR>E' necessario privare preliminarmente il file-device della sua protezione. | <BR>E' necessario privare preliminarmente il file-device della sua protezione. | ||
<BR>Quindi si potrà usare il seguente codice: | <BR>Quindi si potrà usare il seguente codice: | ||
Riga 10: | Riga 10: | ||
− | ''' | + | Public Sub Main() |
− | + | ||
+ | <FONT Color=gray>' ''Elimina la protezione al file-device:''</font> | ||
+ | Shell "echo '<FONT Color=darkgreen>''MIA_PASSWORD''</font>' | sudo -S chmod 444 /dev/hidraw0" Wait | ||
+ | |||
<FONT Color=gray>' ''Apre il file-device in lettura e lo sottopone in "osservazione":''</font> | <FONT Color=gray>' ''Apre il file-device in lettura e lo sottopone in "osservazione":''</font> | ||
fl = Open "/dev/hidraw0" For Read Watch | fl = Open "/dev/hidraw0" For Read Watch | ||
− | + | End | |
− | + | Public Sub File_Read() <FONT Color=gray>' ''Se qualcosa può essere letto dal file-device, si attiva questa routine''</font> | |
− | Dim | + | Dim s As String |
− | <FONT Color=gray>' ''Legge | + | <FONT Color=gray>' ''Legge 4 dati stringa dal file-device:''</font> |
− | Read #fl, | + | Read #fl, s, -4 |
− | Print | + | <FONT color=gray>' ''Poiché una variabile stringa è comunque un puntatore ad un'area riservata, dereferenziamo detta variabile con l'apposita funzione di dereferenziazione che restituisce un tipo "Intero", e ne andiamo a leggere il valore:''</font> |
+ | Print Int@(s) | ||
− | ''' | + | End |
+ | oppure usando le risorse della Classe "Process": | ||
+ | Private pr As Process | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | Shell "echo '<FONT Color=darkgreen>''MIA_PASSWORD''</font>' | sudo -S chmod 444 /dev/hidraw0" Wait | ||
+ | |||
+ | pr = Shell "cat /dev/hidraw0" For Read As "Processo" | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Processo_Read() | ||
+ | |||
+ | Dim s As String | ||
+ | |||
+ | Read #pr, s, -4 | ||
+ | |||
+ | Print Int@(s) | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | ==Dati intercettati== | ||
+ | La lettura del file-device può restituire i seguenti valori: | ||
+ | <BR><B>0</B> : rilascio del tasto premuto del mouse; | ||
+ | <BR><B>1</B> : è premuto il tasto sinistro del mouse; | ||
+ | <BR><B>2</B> : è premuto il tasto destro del mouse; | ||
+ | <BR><B>3</B> : sono premuti contemporaneamente il tasto sinistro e quello destro del mouse; | ||
+ | <BR><B>4</B> : è premuto il tasto centrale (rotellina) del mouse; | ||
+ | <BR><B>5</B> : sono premuti contemporaneamente il tasto sinistro e quello centrale (rotellina) del mouse; | ||
+ | <BR><B>6</B> : sono premuti contemporaneamente il tasto centrale (rotellina) e quello destro del mouse; | ||
+ | <BR><B>7</B> : sono premuti contemporaneamente il tasto sinistro, quello centrale (rotellina) e quello destro del mouse; | ||
+ | <BR><BR><B>16777216</B> : rotazione in alto della rotellina del mouse; | ||
+ | <BR><B>-16777216</B> : rotazione in basso della rotellina del mouse; | ||
+ | <BR><BR><B>256</B> : spostamento a destra del puntatore del mouse; | ||
+ | <BR><B>65280</B> : spostamento a sinistra del puntatore del mouse; | ||
+ | <BR><B>65536</B> : spostamento in basso del puntatore del mouse; | ||
+ | <BR><B>16711680</B> : spostamento in alto del puntatore del mouse. | ||
Versione attuale delle 20:15, 27 nov 2023
Il file-device /dev/hidraw fornisce un'interfaccia non elaborata a dispositivi di interfaccia umana (HID) come l'USB e il Bluetooth. I report sono inviati e ricevuti dal dispositivo non modificati.
Il nome del file-device termina con un numero d'indice: /dev/hidraw(n)
Leggendo questo file-device è possibile intercettare i dati grezzi dal mouse, che possono essere la direzione dello spostamento del mouse e la pressione sui tasti.
Mostriamo qualche esempio pratico.
E' necessario privare preliminarmente il file-device della sua protezione.
Quindi si potrà usare il seguente codice:
Private fl As File Public Sub Main() ' Elimina la protezione al file-device: Shell "echo 'MIA_PASSWORD' | sudo -S chmod 444 /dev/hidraw0" Wait ' Apre il file-device in lettura e lo sottopone in "osservazione": fl = Open "/dev/hidraw0" For Read Watch End Public Sub File_Read() ' Se qualcosa può essere letto dal file-device, si attiva questa routine Dim s As String ' Legge 4 dati stringa dal file-device: Read #fl, s, -4 ' Poiché una variabile stringa è comunque un puntatore ad un'area riservata, dereferenziamo detta variabile con l'apposita funzione di dereferenziazione che restituisce un tipo "Intero", e ne andiamo a leggere il valore: Print Int@(s) End
oppure usando le risorse della Classe "Process":
Private pr As Process Public Sub Form_Open() Shell "echo 'MIA_PASSWORD' | sudo -S chmod 444 /dev/hidraw0" Wait pr = Shell "cat /dev/hidraw0" For Read As "Processo" End Public Sub Processo_Read() Dim s As String Read #pr, s, -4 Print Int@(s) End
Dati intercettati
La lettura del file-device può restituire i seguenti valori:
0 : rilascio del tasto premuto del mouse;
1 : è premuto il tasto sinistro del mouse;
2 : è premuto il tasto destro del mouse;
3 : sono premuti contemporaneamente il tasto sinistro e quello destro del mouse;
4 : è premuto il tasto centrale (rotellina) del mouse;
5 : sono premuti contemporaneamente il tasto sinistro e quello centrale (rotellina) del mouse;
6 : sono premuti contemporaneamente il tasto centrale (rotellina) e quello destro del mouse;
7 : sono premuti contemporaneamente il tasto sinistro, quello centrale (rotellina) e quello destro del mouse;
16777216 : rotazione in alto della rotellina del mouse;
-16777216 : rotazione in basso della rotellina del mouse;
256 : spostamento a destra del puntatore del mouse;
65280 : spostamento a sinistra del puntatore del mouse;
65536 : spostamento in basso del puntatore del mouse;
16711680 : spostamento in alto del puntatore del mouse.