SQLRU.net
Разработка приложений баз данных

Начало » Программирование » Delphi » Не отрабатывает утилита, запущенная путём CreateProcess()
Не отрабатывает утилита, запущенная путём CreateProcess() [сообщение #5924] Mon, 24 February 2025 13:29 Переход к следующему сообщению
a.v.z в настоящее время не в онлайне  a.v.z
Сообщений: 8
Зарегистрирован: November 2022
Junior Member
Есть библиотека GDAL для работы с геоданными.
Я использую утилиту gdalinfo.
Запуск из командной строки
gdalinfo.exe имя_файла > файл_вывода
отрабатывает нормально.
Но та же строка, вызванная из CreateProcess(), не отрабатывает:
- файл куда перенаправлен вывод из утилиты, не создаётся,
- программа завершается без задержки, которая неизбежна при обработке входного файла.
Моё предположение: утилита анализирует, откуда она запущена,
и если распознаёт что не из командной строки, то отказывается работать.

Вопрос:
1.Насколько вероятно моё предположение;
2.Что можно посоветовать для обхода?  


Re: Не отрабатывает утилита, запущенная путём CreateProcess() [сообщение #5927 является ответом на сообщение #5924] Mon, 24 February 2025 15:39 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 432
Зарегистрирован: August 2022
Senior Member
1. Нинасколько. Перенаправление потоков ввода-вывода это фишка командного процессора. Оно, естественно, не работает при прямом создании процесса.
2. Либо вручную передавай CreateProcess параметр lpStartupInfo с правильно назначенным hStdOutput, либо, если ленив, вызывай cmd.exe.
Re: Не отрабатывает утилита, запущенная путём CreateProcess() [сообщение #5931 является ответом на сообщение #5927] Tue, 25 February 2025 07:36 Переход к предыдущему сообщению
a.v.z в настоящее время не в онлайне  a.v.z
Сообщений: 8
Зарегистрирован: November 2022
Junior Member
Вот я болван!  :d
Спасибо.
Предыдущая тема: FireDac MS Access x64
Переход к форуму:
  


Текущее время: Thu Mar 06 16:48:40 GMT+3 2025

Общее время, затраченное на создание страницы: 0.00932 секунд