Du musst ShellExecute das Arbeitsverzeichnis mitteilen

Jupp, oder 7-Zip das Ausgabeverzeichnis mitgeben (
-o"C:\irgendwo\"
),
aber zusätzlich das Arbeitsverzeichnis kann eh nie verkehrt sein, denn 7-Zip erstellt gern mal im Arbeitsverzeichnis Temp-Dateien.
Delphi-Quellcode:
WorkDir := 'd:\Buffer\Test 7z';
..., PChar(Params), PChar(WorkDir), SW_ShowNormal);
Und in WorkFile gehören eigentlich keine Anführungszeichen, wenn mit dem zweiten Params-Parameter gearbeitet wird.
{Operation,} CommandLine, nil {, WorkDir}
oder {Operation,} ProgramPath, Parameters {, WorkDir}
.
Ein Therapeut entspricht 1024 Gigapeut.