Differenze tra le versioni di "Terminare automaticamente un Processo dopo un periodo di tempo dalla sua apertura con Process"
Da Gambas-it.org - Wikipedia.
Riga 5: | Riga 5: | ||
Private tempus As Timer | Private tempus As Timer | ||
Private pr As Process | Private pr As Process | ||
+ | |||
Public Sub Main() | Public Sub Main() |
Versione attuale delle 06:06, 20 giu 2024
Per far terminare un Processo dopo un periodo di tempo dalla sua apertura con Process, possiamo utilizzare un Oggetto Timer.
Si ottiene l'Oggetto di tipo Processo restituito da SHELL o EXEC, quindi si crea un Timer che si attivi per un determinato periodo di tempo. Passato tale lasso di tempo, il Processo viene interrotto nel gestore Eventi "_Timer()" del Timer. Infine il Timer viene interrotto, non essendo più utile.
Mostriamo un esempio pratico con applicazione a "riga di comando":
Private tempus As Timer Private pr As Process Public Sub Main() ' Apre il programma della calcolatrice di gnome e ne gestisce il processo: pr = Shell "gnome-calculator" As "Processo" ' Crea un Timer e ne imposta il ritardo a 7000 millisecondi: With tempus = New Timer As "Tempus" .Delay = 7000 .Start End With End Public Sub Tempus_Timer() ' Termina il processo del programma "gnome_calculator": pr.Kill End Public Sub Processo_Kill() ' Questo Evento viene sollevato, quando il processo viene terminato Print "Processo "; pr.Id; " terminato !" ' Si arresta il Timer, ottenedo così anche la chiusura dell'applicazione Gambas: tempus.Stop End