Как сделать какие-то действия дождавшись завершения процесса?
1. Открывать файл для записи.
2. Выяснить hWnd запушенной программы и использовать функцию IsWindow(Handle:hWnd), которая определяет, существует ли он.
3. Взять hProcess, возвращаемый CreateProcess, и возпользоваться функцией WaitForSingleObject с hProcess в качестве параметра.