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.