Schau mal hier:
http://assarbad.net/stuff/shellapiex.pas
Funktioniert exakt wie ShellExecute, nur daß man optional auch warten kann. Ist auch in der Codebase. Ich versteh sowieso nicht, warum immer CreateProcess() angepriesen wird, wo das doch einen ganz anderen Hintergrund hat :-/