Temporizzare una funzione o un evento

Da Gambas-it.org - Wikipedia.

Il caso è quello in cui intendiamo prevedere l'attivazione di una funzione o in generale di un evento ad un certo orario.


Poniamo, come esempio, di voler lanciare ad un certo orario il programma Gedit, e ad un altro orario farlo chiudere. Inseriremo a tal fine, per semplicità, due TextBox. Nel primo TextBox inseriremo l'orario di apertura del programma Gedit, mentre nel secondo l'orario in cui dovrà essere chiuso. In entrambi i TextBox si inserirà l'orario con il seguente formato: hh:mm:ss .

Private hp As Process


Public Sub Button1_Click()

   With Timer1  
' Attiviamo il Timer ogni secondo, per vedere l'orario del computer:
      .Start  
      .Delay = 1000  
   End With  
     
End
     

Public Sub Timer1_Timer()  

' Se la data e l'orario del computer sono uguali all'orario scritto nel primo "TextBox"...
     If Str(Now) = TextBox1.Text Then
' allora facciamo lanciare il programma "Gedit",
' e ne gestiamo il processo con un'apposita variabile:
       hp = Shell "gedit"
     Endif
   

' Se l'orario del computer è uguale a quello presente nel secondo "TextBox"...
     If Str(Time) = TextBox2.Text Then
' ...allora stronchiamo il processo:
       hp.Kill
' Blocchiamo quindi anche il "Timer":
       Timer1.Stop
    Endif
          
End