Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Probleme mit kurzen und langen Dateinamen / Übergabe

  Alt 21. Mär 2009, 19:46
Probiers mal so (Copy&Paste bitte... Funtion ist mit der 2 anders benannt)
Delphi-Quellcode:
function ExecAndWait2(const Filename, Param1, Param2: string; WindowState: word): boolean;
var
  SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: string;
begin
  // Parameterliste
  CmdLine := '"' + Param1 + '" "' + Param2 + '"';

  FillChar(SUInfo, SizeOf(SUInfo), #0);
  with SUInfo do
  begin
    cb := SizeOf(SUInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WindowState;
  end;
 
  // vvvvvvvvvvvvvv
  Result := CreateProcess(PChar(Filename), PChar(CmdLine), 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;
Aufruf dann:
ExecAndWait2(shortfilename('c:\treetagger\bin\CCCGraph.bat'),'C:\TreeTagger\BIN\test.txt','C:\treetagger\bin\tagged_test.txt',sw_normal); €: Hatte jetzt selber ein Fehler drin

PS: normalerweise gehört natürlich CmdLine außerhalb zusammengebaut und als ein Params übergeben, damit ExecAndWait universell bleibt.
  Mit Zitat antworten Zitat