Es wird nur geprüft, ob der Befehl gestartet wurde (bzw. ProgrammDatei gefunden und vielleicht startbar),
aber nicht ob der Befehl auch erfolgreich war (ExitCode/ErrorLevel).
Also erst das schon genannte WaitFor... und anschließend noch
GetExitCodeProcess.
Und bei CreateProcess=False das GetLastError (mit einem SysErrorMessage, bzw. RaiseLastOSError und den Error als Parameter reingeben)