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..