Работа с внешними приложениями

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

09 апр 2004, 17:41

Наверное, самый незатейливый способ - запустить консольную программу из-под командного процессора и перенаправить вывод в файл. Что-то типа:

Код: Выделить всё

{
  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;
Дальше, понятно, читаем из файла то, что нужно.
Ответить