Thanks Vincent,

I did not think of it as there are only about 30lines of output. It works now.

Darius


Vincent Snijders wrote:
Darius Blaszijk schreef:
The following piece of code is giving me headaches. When I add the option poUsePipes, the application starts and does not seem to do anything else anymore. It just opens a commandline terminal and that is that. When I leave the option out the application actually starts "make" and then crashes because AProcess.Output is nil.
What did I forget? I'm working on WinXP. On Linux btw the code works.

Darius

procedure ExecuteApp(CmdLine: string);
var
 AProcess: TProcess;
 AStringList: TStringList;
begin
 AProcess := TProcess.Create(nil);
 AStringList := TStringList.Create;
 AProcess.CommandLine := CmdLine;
 AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
 AProcess.Execute;
 AStringList.LoadFromStream(AProcess.Output);
 AStringList.SaveToFile('output.txt');
 AStringList.Free;
 AProcess.Free;
end;

begin
 ExecuteApp('make');
end.

Maybe the output buffer is full and the application is waiting for you to read from the pipe. See the reading large output program at http://wiki.lazarus.freepascal.org/Executing_External_Programs#Reading_large_output

Vincent
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to