Differenze tra le versioni di "Terminare automaticamente un Processo dopo un periodo di tempo dalla sua apertura con Process"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per far terminare un Processo dopo un periodo di tempo dalla sua apertura con ''Process'', possiamo utilizzare un Oggetto [https://gambaswiki.org/wiki/comp/gb/timer?l=it Timer...")
 
 
Riga 1: Riga 1:
 
Per far terminare un Processo dopo un periodo di tempo dalla sua apertura con ''Process'', possiamo utilizzare un Oggetto [https://gambaswiki.org/wiki/comp/gb/timer?l=it Timer].
 
Per far terminare un Processo dopo un periodo di tempo dalla sua apertura con ''Process'', possiamo utilizzare un Oggetto [https://gambaswiki.org/wiki/comp/gb/timer?l=it Timer].
<BR>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.
+
<BR>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":
 
Mostriamo un esempio pratico con applicazione a "riga di comando":
Riga 6: Riga 6:
 
  Private pr As Process
 
  Private pr As Process
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
  <FONT Color=gray>' ''Apre il programma della calcolatrice di gnome e ne gestisce il processo:''</font>
 
  <FONT Color=gray>' ''Apre il programma della calcolatrice di gnome e ne gestisce il processo:''</font>
 
   pr = Shell "gnome-calculator" As "Processo"
 
   pr = Shell "gnome-calculator" As "Processo"
 
    
 
    
  <FONT Color=gray>' ''Crea un Timer e ne imposta il ritardo a 2000 millisecondi:''</font>
+
  <FONT Color=gray>' ''Crea un Timer e ne imposta il ritardo a 7000 millisecondi:''</font>
 
   With tempus = New Timer As "Tempus"
 
   With tempus = New Timer As "Tempus"
     .Delay = 2000
+
     .Delay = 7000
 
     .Start
 
     .Start
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub Tempus_Timer()
+
   
 +
Public Sub Tempus_Timer()
 
    
 
    
 
  <FONT Color=gray>' ''Termina il processo del programma "gnome_calculator":''</font>
 
  <FONT Color=gray>' ''Termina il processo del programma "gnome_calculator":''</font>
 
   pr.Kill
 
   pr.Kill
 
   
 
   
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub Processo_Kill()  <FONT Color=gray>' ''Questo Evento viene sollevato, quando il processo viene terminato''</font>
+
  Public Sub Processo_Kill()  <FONT Color=gray>' ''Questo Evento viene sollevato, quando il processo viene terminato''</font>
 
   
 
   
 
   Print "Processo "; pr.Id; " terminato !"
 
   Print "Processo "; pr.Id; " terminato !"
Riga 33: Riga 35:
 
   tempus.Stop
 
   tempus.Stop
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 16:43, 11 lug 2023

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