Vielleicht lässt Du Dir mal den genauen ShellExecute-Aufruf anzeigen, zB:
Delphi-Quellcode:
ShowMessage(name);
ShowMessage(workdir);
Sag mir doch mal, was jeweils bei den Aufrufen von den Programmen wo es nicht klappt, angezeigt wird.
//Edit:
Was ist eigentlich mit den Parametern?
Die Programme werden doch bestimmt im Autostart mit irgendwelchen Parametern gestartet, die hast Du aber in deinem Code von Beitrag #13 nicht berücksichtigt.
Lass Dir die Parameter dann auch mal per ShowMessage anzeigen.