результат выполнения сторонней программы сохранить в переменную Delphi

yemets63
Дата: 20.11.2019 11:45:43
запускаем стороннюю программу из проекта, например с помощью shellapi, программа зарпускается и формирует по результатам запроса текстовый файл, который сохраняется на диск.
подскажите какие нибудь решения, чтобы результат сохранялся не на диск, а в переменную Delphi к примеру TYPE Memo,
результат выполнения сторонней программы обычный текстовый файл.

спасибо.
DimaBr
Дата: 20.11.2019 11:52:30
alekcvp
Дата: 20.11.2019 12:18:41
DimaBr
тынц

Стороннюю же программу.

Лёгких путей не будет.
Либо следить за изменениями файла, в который она всё сохраняет, и перечитывать его по мере обновления, либо писать свой драйвер, который будет перехватывать обращения для записи в этот файл и перенаправлять его :)
Sinemurius
Дата: 20.11.2019 12:33:18
А в чем проблема просто запустить внешнюю программу, дождаться завершения, прочитать файл, удалить файл ?
yemets63
Дата: 20.11.2019 12:57:36
Sinemurius,

это реализовано было сразу, но есть сказка о золотой рыбке.
x1ca4064
Дата: 20.11.2019 13:25:38
alekcvp

Либо следить за изменениями файла, в который она всё сохраняет, и перечитывать его по мере обновления, либо писать свой драйвер, который будет перехватывать обращения для записи в этот файл и перенаправлять его :)


Зачем драйвер? Достаточно внедрить dll в целевой процесс и перехватить CreateFile, CloseHandle, WriteFile
Мимопроходящий
Дата: 20.11.2019 13:26:31

а пра чо топег?
а хто аффтар?

(С)

Posted via ActualForum NNTP Server 1.5

Василий 2
Дата: 20.11.2019 13:56:59
Может, тебе просто вывод в консоль надо перехватить?
ёёёёё
Дата: 20.11.2019 15:03:01
yemets63
запускаем стороннюю программу из проекта, например с помощью shellapi, программа зарпускается и формирует по результатам запроса текстовый файл, который сохраняется на диск.
подскажите какие нибудь решения, чтобы результат сохранялся не на диск, а в переменную Delphi к примеру TYPE Memo,
результат выполнения сторонней программы обычный текстовый файл.

спасибо.

1. Запускаешь программу с параметром "имя файла". Запускаемая программа должна понимать, что результат должен быть выведен в указанный файл.
2. Запускающая программа ждет завершения созданного процесса.
3. Запускающая программа считывает файл в переменную.

Пример: 22014912
YuRock
Дата: 20.11.2019 16:10:26
Может достаточно GetExitCodeProcess