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