Einzelnen Beitrag anzeigen

frieder2008

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

Re: Probleme mit kurzen und langen Dateinamen / Übergabe

  Alt 21. Mär 2009, 20:23
Danke für die Antworten, aber ich bekomms nicht hin:

Folgendes hab ich (u.a.) versucht, sowohl mit als auch ohne getshortpathname; "" als extra Params hat auch nicht gefunzt:

Delphi-Quellcode:
 
function ExecAndWait(const Filename, Params: string;
                           WindowState: word): boolean;
var
  SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: string;
begin
  //Dateinamen in Anführungszeichen wg. langer Dateinamen mit Blanks
  CmdLine := '"' + Filename + '"';

  FillChar(SUInfo, SizeOf(SUInfo), #0);
  with SUInfo do
  begin
    cb := SizeOf(SUInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WindowState;
  end;

  Result := CreateProcess(PChar(CmdLine), PChar(params), nil, nil, FALSE,
                          CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
                          PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo);

  //Warten bis beendet
  if Result then
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);
end;


//Button:
Execandwait(shortfilename('c:\treetagger\bin\CCCGraph.bat'),'"C:\TreeTagger\BIN\test.txt" "C:\treetagger\bin\tagged_test.txt"',sw_normal);
Et jeht nich! Nicht einmal die Batchdatei wird gestartet..

@Satty: Hast Du was anderes gemacht, als ich hier jetzt?!?

gruß, frieder

EDIT:

Mit

shellexecute(0, 'open', pchar('c:\treetagger\bin\CCCGraph.bat'), '"C:\TreeTagger\BIN\test.txt" "C:\treetagger\bin\tagged_test.txt"', nil, SW_NORMAL); wird zwar die Bat gestartet, aber die Params offenbar nicht korrekt übertragen..
  Mit Zitat antworten Zitat