Код: Выделить всё
{
pCmdLine - командная строка, запускающая данную конс.программу (включая параметры, если есть)
pOutputFile - файл, куда будет перенапрвлен вывод
}
procedure RunConsoleApp(const pCmdLine, pOutputFile: String);
var startup_info: TStartupInfo;
process_info: TProcessInformation;
cmd_line: String;
begin
ZeroMemory(@startup_info, SizeOf(startup_info));
startup_info.cb := SizeOf(startup_info);
cmd_line := Format('cmd.exe /c /a %s > %s', [pCmdLine, pOutputFile]);
Win32Check(CreateProcess(nil, PChar(cmd_line), nil, nil, False, NORMAL_PRIORITY_CLASS,
nil, nil, startup_info, process_info));
WaitForSingleObject(process_info.hProcess, INFINITE);
CloseHandle(process_info.hProcess);
CloseHandle(process_info.hThread);
end;