Форум: "WinAPI";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
ВнизПерехват экранного вывода DOS приложений Найти похожие ветки
← →
Виктор Щербаков (2001-11-27 16:05) [3]Пример запуска extract.exe - DOS распаковщика CAB файлов с перенаправлением консольного вывода в файл:
procedure TForm1.Button1Click(Sender: TObject);
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
//Заполняем структуру инициализации процесса
ZeroMemory(@SI, SizeOf(SI));
SI.cb := SizeOf(SI);
SI.dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
SI.wShowWindow := SW_HIDE;
//Перенаправляем вывод в файл
SI.hStdOutput := CreateFile(PChar(ExtractFilePath(Application.ExeName) + "Output.tmp"), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ, nil, CREATE_ALWAYS,
FILE_FLAG_OVERLAPPED, 0);
//Запускаем
if CreateProcess(nil, "extract.exe", nil, nil, False, 0, nil, nil, SI, PI) then
begin
CloseHandle(PI.hThread);
WaitForSingleObject(PI.hProcess, INFINITE); //ждем
CloseHandle(PI.hProcess);
end;
// Закрываем файл
CloseHandle(SI.hStdError);
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c