Есть ли возможность сделать кросс-платформенный вывод текста из Shell / Bash в FMX Memo? - PullRequest
0 голосов
/ 30 января 2019

У меня есть программа, которая выполняет .bat файлы для MS Windows и .command файлы для macOS .Оба этих исполняемых файла работают как скрипты запуска для другой программы - Render Engine.Этот Render Engine генерирует вывод в консоль.Я хочу заменить консоли, которые открываются каждый раз, когда я выполняю сценарий, с более дружественным интерфейсом с расчетным временем и индикаторами выполнения, но мне нужно знать, что именно показывает консоль в этот момент, чтобы иметь возможность рассчитать все это.Мой вопрос, есть ли способ получить вывод в реальном времени с консоли, работающей в режиме реального времени в строку Delphi?

С VCL, который можно было сделать с помощью JEDI или процедуры GetDosOutput.И это действительно работало с приложениями VCL.

Выполнение фрагмента кода

{$IFDEF MSWINDOWS}
  ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_SHOWNORMAL);
{$ENDIF MSWINOWS}
{$IFDEF POSIX}
  //Grab ownership of executable
  _system(PAnsiChar('chmod +x ' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command')));
  //Execute
  _system(PAnsiChar('open ' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command')));
{$ENDIF POSIX}
...