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
PUBLIC hprocess as processPUBLIC SUB Button1_Click() hprocess = SHELL "gedit"ENDPUBLIC SUB Button2_Click() hprocess.Close()END
hProcess.Kill
hprocess = SHELL "comando" AS "hprocess"
PRIVATE hProc AS ProcessPUBLIC SUB Button1_Click() 'Scateno l'evento Read hProc = EXEC ["ps", "aux"] FOR READ AS "Proc" 'Scateno l'evento Error hProc = EXEC ["cat", "/quaicos"] FOR READ AS "Proc"ENDPUBLIC SUB Button2_Click() '.State legge lo stato del processo IF hProc.State = hProc.Running THEN 'se il processo è in esecuzione ELSE IF hProc.State = hProc.Stopped THEN 'se il processo non è in esecuzione ELSE IF hProc.State = hProc.Crashed THEN 'se il processo si è 'schiantato' ENDIF hProc.Kill() 'Chiude l'appicazione hProc.Close() 'Chiude lo stream 'Mi è capitato di dover usare hProc = NULL per chiudere 'l 'applicazione in quanto .Kill() non aveva avuto effetto. ENDPUBLIC SUB Proc_Read()DIM s AS String 'Lettura dell'output del terminale READ #LAST, s, -256 PRINT s ENDPUBLIC SUB Proc_Kill() 'Evento che si scatena alla chiusura del processo PRINT "Ho Chiuso il Processo"ENDPUBLIC SUB Proc_Error(Errore AS String) 'Evento che si scatena ad un errore del processo PRINT Errore END
' Gambas class filePRIVATE hprocess AS ProcessPUBLIC SUB _new()ENDPUBLIC SUB Form_Open()ENDPUBLIC SUB Button1_Click() hprocess = EXEC ["gedit"]ENDPUBLIC SUB Button2_Click() hprocess.Close() hprocess.Kill()END
Grazie milio, con il codice da te suggerito funziona.Cmq utilizzando il comando SHELL non sembra possibile gestire il processo.
hprocess = SHELL "comando" FOR READ AS "hprocess"