Форум: "WinAPI";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Вниз
CreateProcess Найти похожие ветки
← →
Dmitrij_K (2005-06-29 13:53) [0]Коuда запускаешь через ком. строку
программу типа
unzip.exe>aaa.txt
результат выводиться в файл
а если это делать через CreateProcess то нет
CreateProcess(nil, "unzip.exe>aaa.txt", ...
Спасибо
← →
-=S.S=- © (2005-06-29 13:59) [1]Для таких целей юзай winexec
← →
Dmitrij_K (2005-06-29 14:01) [2]Неподойдет
я жду завершения процесса и потом считываю получившийся файл
т.е. мне придется читать то что пишет программа в консоль и больше никак?
← →
Digitman © (2005-06-29 14:08) [3]
> т.е. мне придется читать то что пишет программа в консоль
> и больше никак?
а чем тебе такой подход не нравится ?
перед стартом процесса создай пайп (см. CreatePipe), полученный хендл устройства вывода подставь в поле hStdOutput структуры STARTUPINFO, стартуй процесс (CreateProcess) ..
все что процесс выводит в консоль, будет перенаправлено в твой пайп и ты это спокойно прочитаешь
← →
BiN © (2005-06-29 14:10) [4]Msdn->DuplicateHndle->секция Examle Code
← →
alpet © (2005-06-29 14:17) [5]Также действенен след. подход:
procedure TForm1.Button1Click(Sender: TObject);
const
prog: String = "c:\windows\system32\cmd.exe /c dir > c:\123.txt";
var
si: _STARTUPINFOA;
pi: _PROCESS_INFORMATION;
begin
// x := TSomeObj.Create;
fillchar (si, sizeof (si), 0);
fillchar (pi, sizeof (pi), 0);
si.cb := sizeof (si);
CreateProcess (nil, PChar (prog), nil, nil, false, 0,
nil, nil, si, pi);
Нужно только заменить dir на unzip.exe или что ты там выполнить хочешь.
← →
MBo © (2005-06-29 14:19) [6]CreateProcess(nil,PChar("cmd /C rar.exe >> e:\out.txt"), ...
← →
MBo © (2005-06-29 14:19) [7]пардон, [5] не видел
← →
Dmitrij_K (2005-06-29 14:20) [8]2alpet
так не работает
уже пишу с перехватом
всем спасибо
тема закрыта
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c