[fpc-pascal] Re: TProcess questions

Marco van de Voort marcov at stack.nl
Tue Oct 3 11:39:50 CEST 2006


> Can you add the following to TProcess instead of using the CommandLine property:
> example:
> property ProcessName: String - the process to be executed
> property Params : TStringList - list of command line params to be
> passed to the process
> 
> Why should quote characters be stripped as it is in the current
> implementation?

When executing, there is a difference between shell notation and the
programming interface.

e.g.

program name parammeter 1 parameter 2 parameter 3

should be written on the cmdline as

"program name" "parameter 1" "parameter 2"  "parameter 3"

But should be passed to a kernel function as:
filename:='/full/path/to/program name';  // no quotes;
param[0]:='parameter 1';		 // no quotes;
param[1]:='parameter 2';		 // no quotes;
param[2]:='parameter 3';		 // no quotes;

This is the difference between shell api and deeper api. E.g

	shell      		deeper
Unix:  (fp)system() 		 (fp)exec* 
winxx:  shellexecute  		createprocess 

Another usual difference between these two is that the shell versions search
for the binary, while you need to pass full path to the "deeper" category of
functions.



More information about the fpc-pascal mailing list