Der Befehl selbst ist beim ersten Leerzeichen zuende. Wenn die Datei Leerzeichen im Namen enthält, muss der Dateiname in Anführungszeichen gesetzt werden, dann ist der Befehl eben nach dem zweiten Anführungszeichen zu Ende. Aber das ist auch egal, denn das braucht dich nicht zu kümmern, wenn du statt ShellExecute() einfach CreateProcess() verwendet. Das nimmt zwar ein paar mehr Parameter (von denen die meisten 0 oder nil sein können (c; ), aber dafür kannst du, wenn du für lpApplicationname nil angibst, die komplette Befehlszeile als lpCommandline übergeben.
_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.