Hm, już się tego podjąłem i napisałem funkcję do tego
function OpenApplication(CMD: String):TStringList;
var
AppName : array[0..512] of Char;
CurrentDir : array[0..255] of Char;
WorkDir : String;
StartUpInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
begin
OpenApplication:= TStringList.Create;
if FileExists('c:\tmp.txt') then
DeleteFile('c:\tmp.txt');
OpenApplication.Add(CMD+' >> c:\tmp.txt');
OpenApplication.SaveToFile('c:\tmp.bat');
OpenApplication.Clear;
CMD:= 'c:\tmp.bat';
StrPCopy(AppName, CMD);
GetDir(0, WorkDir);
StrPCopy(CurrentDir, WorkDir);
FillChar(StartUpInfo, Sizeof(StartUpInfo), #0);
StartUpInfo.cb := Sizeof(StartUpInfo);
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_HIDE;
if (not CreateProcess(nil, AppName, nil, nil, False, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, CurrentDir, StartUpInfo, ProcessInfo)) then
else
begin
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
end;
OpenApplication.LoadFromFile('c:\tmp.txt');
end;
Użycie: Memo1.Lines:= OpenApplication('ping wp.pl');