uses ShellAPI;
function Tform1.Regkey(Key: HKEY; Subkey: string; var Data: string): Longint;
var
  H    : HKEY;                 
  tData: array[0..259] of Char;
  dSize: Integer;              
begin
  Result := RegOpenKeyEx(Key, PChar(Subkey), 0, KEY_QUERY_VALUE, H);
  if Result = ERROR_SUCCESS then
  begin
    dSize := Sizeof(tData);
    RegQueryValue(H, nil, tData, dSize);
    Data := StrPas(tData);
    RegCloseKey(H);
  end;
end;
procedure TFORM1.StartNewBrowserWindow(URL: string);
var
  P  : Integer;
  Key,urlstr: string;
begin
  if Regkey(HKEY_CLASSES_ROOT, '.htm', Key) = ERROR_SUCCESS then
  begin
    Key := Key + '\shell\open\command';
    if Regkey(HKEY_CLASSES_ROOT, Key, Key) = ERROR_SUCCESS then
    begin
      P := Pos('"%1"', Key);
      if P = 0 then
        P := Pos('%1', Key);
      if P <> 0 then
        setlength(Key, P - 1);
      urlstr := Key + ' ' + URL;
      if WinExec(PChar(urlstr), SW_SHOWNORMAL) < 32 then
        raise Exception.Create('Couldn''t launch default browser');
    end;
  end;
end;
然后只要
procedure TFORM1.BUTTON1Click(Sender: TObject);
begin
  StartNewBrowserWindow('www.163.com');
end;