[fpc-pascal] how to catch fpopen() output

Marc Santhoff M.Santhoff at t-online.de
Wed Jul 23 17:11:15 CEST 2008


Am Mittwoch, den 23.07.2008, 14:40 +0200 schrieb Graeme Geldenhuys:
> Hi,
> 
> I have a function called fpgOpenURL(...) which contains the following ....
> 
>     if fpsystem('which xdg-open') = 0 then
>       Helper := 'xdg-open'
>     else if fpsystem('which firefox') = 0 then
>       Helper := 'firefox';
>     else if fpsystem('which konqueror') = 0 then
>       Helper := 'konqueror';
>     else if fpsystem('which opera') = 0 then
>       Helper := 'opera';
>     else if fpsystem('which mozilla') = 0 then
>        Helper := 'mozilla';
> 
> It tries to dected the preferred or installed web browser. If Helper
> <> '' at the end, I know I found a web browser.  But how do I catch
> the output of fpopen('which xxx') so that I can set the full path of
> the application in  the 'Helper' variable.
> 
> eg:
>    instead of using 'xdg-open'  I would prefer to set the full path
> returned by 'which xdg-open' which is '/usr/bin/xdg-open'

I haven't done it myself, but I'm somewhat sure the standard answer for
this case is:

Use TProcess. There is a wiki page about it.

;)
Marc





More information about the fpc-pascal mailing list