Intercettare i dati del mouse dal file-device hidraw

Da Gambas-it.org - Wikipedia.

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 rappresentano eventi sui tasti.


Mostriamo un 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()
 
' 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 b As Byte
 
' Legge un dato Byte dal file-device:
 Read #fl, b
 
 Print b
 
End

oppure usando le risorse della Classe "Process":

Private pr As Process


Public Sub Form_Open()

  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 : nessun tasto del mouse è premuto;
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;

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.


Riferimenti