[Lazarus] How do I get the default path and filename for the user's HTML browser???
Michael Van Canneyt
michael at freepascal.org
Tue Sep 7 09:19:30 CEST 2010
There is no failsafe way. It really depends on the user, distribution.
My solution would be:
- Let user select one
- If none was selected, search a few of the default browsers in the PATH.
Michael.
On Tue, 7 Sep 2010, Peter E Williams wrote:
> Hi All,
>
> I am writing a procedure called OpenHTMLFile. It works fine with
> HTML_Browser_file (which is the command to run) set to 'firefox' on my
> Linux Ubuntu 10.04 system.
>
> My question is this... what do I need to change to make
> HTML_Browser_file default to the default application (path and filename)
> to open a html file e.g. I want it to be the path and application
> filename of ANY computer's HTML browser. I assume that in this day of
> modern computing that it would be safe to assume that the user has some
> kind of html browsing software whether it be: Firefox, Chrome, Internet
> Explorer, or whatever it is that Macs use ... sorry for my ignorance,
> but I am not a Mac user, so I am no up with the latest browser for Macs.
>
> I want to do this:
> Proc.CommandLine := HTML_Browser_file;
> // e.g. it will now be 'firefox'
> if Proc.CommandLine is a valid application then
> Proc.CommandLine := Whatever_is_the_default_HTML_Browser;
>
>> From Memo1 after run of project1 and call to Button1Click:
> File HTML_2_Open "test1.html" does not exists. Opening browser with
> blank filename.
> Process.CommandLine is: "firefox"
>
> uses Process;
> [...]
>
> procedure TForm1.OpenHTMLFile(HTML_Browser_file, HTML_2_Open : String);
> var
> x : integer;
> Proc : TProcess;
> S : String;
> I : integer;
> begin
> { // this code not used!!!
> S := Application.ExeName;
> // hack for Mac
> I := Pos('.app/Contents/MacOS/', S);
> if (I > 0) then
> S := Copy(S,1, I+3);
> }
>
> Proc := TProcess.Create(nil);
> try
> // Proc.CommandLine := '/Applications/MyApp.app';
> Proc.CommandLine := HTML_Browser_file;
> if not fileExists( HTML_2_Open ) then
> begin
> memo1.lines.add( 'File HTML_2_Open "' + HTML_2_Open + '" does not
> exists. Opening browser with blank filename.' );
> HTML_2_Open := '';
> end
> else
> Proc.CommandLine := Proc.CommandLine + ' ' + HTML_2_Open;
> memo1.lines.add( 'Process.CommandLine is: "' + Proc.CommandLine +
> '"');
> PRoc.Options := Proc.Options + [poWaitOnExit];
> Proc.CommandLine := Proc.CommandLine;
> PRoc.Execute;
> finally
> Proc.free;
> end;
> end; { OpenHTMLFile }
> {---------------------------------------------------------}
>
> procedure TForm1.Button1Click(Sender: TObject);
> const
> Default_HTML_Browser_file = 'firefox';
> var
> HTML_Browser_file, HTML_2_Open : String;
> begin
> HTML_Browser_file := Default_HTML_Browser_file;
> HTML_2_Open := 'test1.html';
> OpenHTMLFile(HTML_Browser_file, HTML_2_Open);
> end;
>
> Best Regards,
> PEW
> Hobart, Tasmania, Australia
>
> --
> Proudly developing Quality Cross Platform Open Source Games
> Since 1970 with a Commodore PET 4016 with 16 KRAM
> http://pews-freeware-games.org (<--- brand new)
>
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
More information about the Lazarus
mailing list