La butto là, eh.... brutalmente....:
Per il primo problema:
Private aT As Byte
Public Sub Form_OPen()
' con questa impostazione faccio sì che,
' quando premerò il Button2, il Timer
' partirà immediatamente:
Timer1.Delay = 1
End
Public Sub Button2_Click()
' qui l'istruzione per far partire il video...
' Shell.... oppure Exec....
'...ed il Timer:
Timer1.Start
End
Public Sub Timer1_Timer()
' Il timer "conta" i secondi:
Timer1.Delay = 1000
Inc aT
' se è arrivato a 60 secondi...
If aT = 60 Then
'...chiude "baracca e burattini":
Me.Close
Endif
End
Per il secondo problema io mi creerei un piccolo form aggiuntivo (la tua finestrella).
Per il terzo problema potrebbe andare una cosa di questo genere, più facile della precedente:
Public Sub Button4_Click()
Dim mss As Byte
mss = Message.Warning("Registrazione in corso", "Chiudi")
If mss = 1 Then
' qui le istruzioni per:
' * chiudere il programma esterno
' magari attraverso la gestione di Process,
' così non ti serve il casino del PID;
'
' * chiudere il tuo programma Gambas.
Endif
End
Scusa, ma non ti seguo...
Ho letto la man page: Process (gb)
This class is used for managing processes launched by the EXEC or SHELL instructions.
As this class is a stream, you can use input/output instructions to read the process standard output or write to its standard input.
To read the process error output, you must use the Error event.
Però non so come adattarlo per me. Ti ripeto che sono proprio a "ZERO" di conoscenza di Gambas... Ho appena iniziato... Abbi pazienza...
Il problema è che quando clicco su "Chiudi" si chiude la finestrella "Registrazione in corso"; si chiude Gambas, ma mencoder continua a girare e a registrare.
parola magica: Process....
Facciamo questo esperimento:
Private mariulin As Process
Public Sub Form_Open()
' lanciamo l'editor "Gedit" mediante Exec
' e ne gestiamo il processo mediante
' l'apposita variabile:
mariulin = Exec ["gedit"]
End
Public Sub Button1_Click()
'...poi lo chiudiamo:
mariulin.Kill
End