19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
... lista degli eventi in una applicazione console?
Private pr As ProcessPrivate lett As New String[]Public Sub Main() Dim s As String Dim ss As New String[] Dim j As Short s = File.Load("/proc/bus/input/devices") s = Replace$(s, "\n", " ") ss = Split(s, " ", "", True) For j = 0 To ss.Max' Individuiamo la riga contenente il testo "Handlers=sysrq", e quindi raccogliamo l'ultima parola della riga medesima.' Tale parola sarà in nome del file-device della tastiera: If ss[j] = "Handlers=sysrq" Then s = ss[j + 2] Next ' Per leggere il file-device individuato, bisogna avere i necessari permessi. Essi vengono quindi modificati.' La parola "mia_password" della riga seguente è la password personale dell'utente: Shell "echo mia_password | sudo -S chmod 4777 /dev/input" &/ s Wait ' Finalmente il file-device viene gestito mediante "Process": pr = Exec ["cat", "/dev/input" &/ s] For Read As "processo"EndPublic Sub processo_Read() ' Ogni volta che viene premuto un tasto della tastiera.... Dim b As Byte'...legge i dati provenienti dal file-device della tastiera: Read #pr, b lett.Add(CStr(b)) If lett.Count = 144 Then ' Se si preme il tasto della lettera "Q".... If lett[20] = "16" Then Print "Intercettato tasto "; Quote(" Q "); " della tastiera !" lett.Clear EndifEnd