<HTML><BODY><div class="cl-hoqgbthcu4"><div> </div><div class="mail-quote-collapse"><blockquote style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">1. Do not use CopyFrom on a non-seekable stream such as a pipe (which is used to capture output in TProcess).<br>this is documented: <a href="https://www.freepascal.org/docs-html/rtl/classes/tstream.copyfrom.html">https://www.freepascal.org/docs-html/rtl/classes/tstream.copyfrom.html</a><br><br>2. Do not use the poWaitOnExit flag. When the program you start outputs more<br>data then the size of the OS pipe buffer then it will be blocked waiting for<br>you to free the pipe buffer, while you wait for it to finish.</blockquote></div></div><div> </div><div><div>I'll supplement the answer above with a link to a good article about this:</div><div> </div><div><a href="https://wiki.freepascal.org/Executing_External_Programs#Reading_large_output">https://wiki.freepascal.org/Executing_External_Programs#Reading_large_output</a></div></div></BODY></HTML>