@ManuMF: Bist du dir sicher?
Nehmen wir mal an, es existiert sowohl im aktuellen Verzeichnis als auch unter C:\Programme eine Datei namens project1.exe.
Wird dann bei
ShellExecute(Application.Handle, nil, 'project1.exe', nil, 'C:\Programme', SW_SHOWNORMAL);
die unter C:\Programme gestartet, oder die im aktuellen Arbeitsverzeichnis, aber mit dem Arbeitsverzeichnis C:\Programme?