Autsch, nein, ich weiß jetzt, woran es liegt, aber ich finde keine Lösung: Das Problem liegt bei Dateinamen/Pfaden mit Leerzeichen! Das folgende bringt jedoch keine Lösung:
Delphi-Quellcode:
procedure ShellExecAndWait(dateiname: string; Parameter: string);
var executeInfo: TShellExecuteInfo;
dw: DWORD;
begin
FillChar(executeInfo, SizeOf(executeInfo), 0);
with executeInfo do
begin
cbSize := SizeOf(executeInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
executeInfo.lpVerb := 'open';
executeInfo.lpParameters := PChar('"' + Parameter + '"'); //<---
lpFile := PChar('"' + dateiname + '"'); //<---
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@executeInfo) then
dw := executeInfo.HProcess
else begin
ShowMessage('Fehler: ' + SysErrorMessage(GetLastError));
Exit;
end;
while WaitForSingleObject(executeInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(dw);
end;
Hat jemand eine Idee, wie ich das deichseln könnte?
Danke und schöne Mittagesgrüße,
frieder