In via generale l'acquisizione (Lettura) di dati "eventuali", provenienti dalla gestione in Gambas di un processo, va effettuata con l'uso dell'Evento " _Read()" della Classe
Process.
Al riguardo suggerirei la lettura di questo breve paragrafo:
https://www.gambas-it.org/wiki/index.php?title=Lettura_dati_da_un_Processo_e_scrittura_dati_in_un_Processo#Lettura_dati_da_un_ProcessoNella fattispecie, proposta dal membro
ujlain,
va consentita la funzionalità di un unico Evento " _Read()" a più processi avviati e gestiti con un array di tipo "
Process ".
Per ottenere ciò, si attribuirà ogni elemento dell'array di tipo "Process" ad un medesimo Gruppo di Eventi tramite il Metodo "Object.Attach()".
Di seguito, riprendendo parte del codice proposto da
ujlain, leggeremo mediante la Classe
Process i dati provenienti dai file-device della tastiera e del mouse attraverso un unico Evento " _Read()".
(Nel mio sistema i file-device attinenti alla tastiera ed al mouse sono: "/dev/input/event4" e "/dev/input/event5", e dovranno essere opportunamente e preliminarmente liberati dalla protezione !)
Private procId As New Process[2]
Public Sub bStart_Click()
procId[0] = Shell "cat /dev/input/event4" For Read
procId[1] = Shell "cat /dev/input/event5" For Read
Object.Attach(procId[0], Me, "processo")
Object.Attach(procId[1], Me, "processo")
End
Public Sub processo_Read()
Dim b As Byte
Read #Last, b ' Legge i dati provenienti da un file-device
If b == 0 Then Return
Print b
End
Public Sub bQuit_Click()
procId[0].Kill
procId[1].Kill
Me.Close
End