![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CreateProcess
Dmitrij_K © (2005-06-29 13:53:00)Коuда запускаешь через ком. строку
программу типа
unzip.exe>aaa.txt
результат выводиться в файл
а если это делать через CreateProcess то нет
CreateProcess(nil, 'unzip.exe>aaa.txt', ...
Спасибо
Dmitrij_K (2005-06-29 14:20:00) [1]2alpet
так не работает
уже пишу с перехватом
всем спасибо
тема закрыта
MBo (2005-06-29 14:19:00) [2]CreateProcess(nil,PChar('cmd /C rar.exe >> e:\out.txt'), ...
MBo (2005-06-29 14:19:00) [3]пардон, [5] не видел
alpet (2005-06-29 14:17:00) [4]Также действенен след. подход:
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 или что ты там выполнить хочешь.
BiN (2005-06-29 14:10:00) [5]Msdn->DuplicateHndle->секция Examle Code
Digitman (2005-06-29 14:08:00) [6]
> т.е. мне придется читать то что пишет программа в консоль
> и больше никак?
а чем тебе такой подход не нравится ?
перед стартом процесса создай пайп (см. CreatePipe), полученный хендл устройства вывода подставь в поле hStdOutput структуры STARTUPINFO, стартуй процесс (CreateProcess) ..
все что процесс выводит в консоль, будет перенаправлено в твой пайп и ты это спокойно прочитаешь
Dmitrij_K (2005-06-29 14:01:00) [7]Неподойдет
я жду завершения процесса и потом считываю получившийся файл
т.е. мне придется читать то что пишет программа в консоль и больше никак?
-=S.S=- (2005-06-29 13:59:00) [8]Для таких целей юзай winexec