Il problema però è sapere quando l'esecuzione è terminata.

Io eseguo il programma esterno tramite il comando Shell(), dopodichè faccio apparire il form, ma poi come faccio a sapere quando il programma si è avviato e quindi chiudere il form?