Как запустить например expand.exe с параметрами чтобы он возвратил результат в DELPHI программу?
Доброго времени суток.
Пишу программку которая должна узнать что находится в CAB файле, и некоторые из этих файлов оттуда вытащить.
Благо expand.exe является встроенной в виндовс программой, её я просто скопировал в директорию с моим .exe файлом. На просторах сети нашёл такие варианты как ShellExecute, Winexec и CreateProcess, все они делают то что нужно, но не передают полученный результат обратно, т.е. в самом простом варианте, мне нужно чтобы после выполнения expand ко мне в программу попадал список файлов находящихся внутри. Кто-нибудь сражался с этой проблемой, как её можно решить?
Интересное решение, но я не могу понять как Delphi получит информацию от стороннего окна. В примерах зачастую используется функция стороны клиента SendMessageToServer (Например), но в expand.exe ведь нет такого... можете ли вы показать пример по этом поводу? Был бы очень признателен.
KashurinS: Это же консольное приложение и мы просто перенаправляем его вывод в PIPE, ну и читаем этот PIPE по мере поступления информации. Дальше вам остаётся только распарсить полученный текст.
Хотя, гораздо лучше, взять какой-нибудь компонент для работы с архивами, типа Abbrevia и читать cab без этих извращений с консольными утилитами.
Да, как вариант, но мне кажется это уже костыль, т.к. cab файл не один, т.е. сначала их нужно обработать, потом записать информацию с каждого архива в файл, потом считывать с файлов, потом открыть некоторые архивы и разархивировать с них нужные файлы. Насколько я знаю, есть Uses Zlib в делфи.... вот интересно, есть ли такое же решение, только для работы с CAB.