1. Computing

How to open a web site with the default web browser in a NEW window

By

You can easily run an application or a file from Delphi. The Start from Delphi article provides many samples.

When using ShellExecute (as explained in the above article) to open a web site or a htm file with the default web browser you *don't* have the option to specify that you want to start a new instance of the browser - in general an existing window is used.

To make sure a new window is created we need to call the ShellExecute function a little differently - by specifying the URL as a parameter to a call to your default browser (an application associated with the htm and html, etc extension).

~~~~~~~~~~~~~~~~~~~~~~~~~
uses
   Registry, ShellAPI;

function BrowseURL(const URL: string) : boolean;
var
   Browser: string;
begin
   Result := True;
   Browser := '';
   with TRegistry.Create do
   try
     RootKey := HKEY_CLASSES_ROOT;
Access := KEY_QUERY_VALUE;
     if OpenKey('\htmlfile\shell\open\command', False) then
       Browser := ReadString('') ;
     CloseKey;
   finally
     Free;
   end;
   if Browser = '' then
   begin
     Result := False;
     Exit;
   end;
   Browser := Copy(Browser, Pos('"', Browser) + 1, Length(Browser)) ;
   Browser := Copy(Browser, 1, Pos('"', Browser) - 1) ;
   ShellExecute(0, 'open', PChar(Browser), PChar(URL), nil, SW_SHOW) ;
end;

//Usage
BrowseURL('http:delphi.about.com') ;

~~~~~~~~~~~~~~~~~~~~~~~~~
Here's a more general code to find the associated application for a file extension.

Delphi tips navigator:
» MORE TIPS
« How to disable Context menu in a TWebBrowser

Related Video
Adobe Photoshop Web Button
iMovie Export for Web

©2014 About.com. All rights reserved.