Non avevo letto "dalla shellexecute" ...

Comunque, dato che mi pare che parliamo di Windows, ti consiglio di usare le API

CreateProcess
WaitForSingleObject
GetExitCodeProcess

Troverai documentazione su MSDN