Einzelnen Beitrag anzeigen

frieder2008

Registriert seit: 28. Feb 2009
78 Beiträge
 
#4

AW: ShellExecAndWait nicht bei allen Windows XPs??

  Alt 24. Jun 2011, 12:34
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
  Mit Zitat antworten Zitat