Buonasera.
Sto sviluppando un piccolo programmino di utility in Delphi.
Sono alla fine e mi si presenta un piccolo fastidio: questo programma deve avviare dei programmi esterni in sequenza, aspettando che ciascuno di essi termini la sua esecuzione prima di lanciare il successivo.
Io, per far eseguire il programma esterno ho utilizzato la funzione ShellExecute. Il programma viene avviato correttamente, ma l'esecuzione prosegue senza attendere che il programma abbia finito.
Come posso fare per far sì che l'esecuzione del programma Delphi attenda che il programma esterno abbia finito, prima di proseguire? Dalla guida non ho trovato nulla (la funzione, che sostanzialmente effettua una chiamata di sistema, non ritorna nulla).
Posto il codice per capire meglio la situazione:
codice:
{ ... Qui effettuo la fusione dei dati ...}
ShellExecute(0, 'open', 'fusione_dati', 'parametri', '', SW_SHOWNORMAL);
{ Qui dovrei attendere che 'fusione_dati' abbia finito il suo lavoro prima di procedere }
if ( condizione ) Then
Begin
{ ... Qui lancio l'Update Procedura ...}
ShellExecute(0, 'open', 'update_procedura', '', '', SW_SHOWNORMAL);
end;
Chi mi sa aiutare?
Se non fosse possibile una gestione di questo tipo tramite ShellExecute, cos'altro potrei utilizzare?
Ciao.