[Lazarus] Confusion with TProcess on Windows
Ludo Brands
ludo.brands at free.fr
Thu Aug 8 08:45:02 CEST 2013
On 08/08/2013 08:02 AM, Richard Mace wrote:
> Hi All,
> I am baffled :)
> If I open a command prompt, change to the directory which contains
> plink.exe and run the command:
>
> plink -pw password root at 192.168.0.5 <mailto:root at 192.168.0.5> command
>
> The command works no problem, but if I do following in a TProcess I get
> a "flash" of a black window, then nothing!
>
> Process := TProcess.Create(nil);
> try
> sPSFTPFile := IncludeTrailingBackslash(ExtractFilePath(ParamStr(0)))
> + 'plink.exe';
> Process.Executable := sPSFTPFile;
> S := '-pw ' + Password + ' ' + Username + '@' + IPAddress + ' ' +
> Command;
>
> Process.Parameters.Add(S);
> Process.Options := Process.Options + [poWaitOnExit];
> Process.Execute;
> finally
> Process.Free;
> end;
>
> Any ideas?
>
>
You need to split the parameters. Parameters are the equivalent of
paramstr() or argv on the receiving end. So something like:
Process.Parameters.Add('-pw');
Process.Parameters.Add(Password);
Process.Parameters.Add(Username + '@' + IPAddress);
Process.Parameters.Add('<mailto:root at 192.168.0.5>');
Process.Parameters.Add(Command);
Ludo
More information about the Lazarus
mailing list