Il 17/09/2010 17.23, Mattias Gaertner ha scritto:
I fixed FindDefaultBrowser to add "" around the parameter.
Please test with svn revision 27397.

Tested. It does not work. I am actually using it both on win and linux. I tested it only on win and I got the same problem as before. Actually on Win I do not use FindDefaultBrowser because it does not work on my machine because it uses

  Find('rundll32', ABrowser);

function Find(const ShortFilename: String; out ABrowser: String): Boolean; inline;
  begin
    ABrowser := SearchFileInPath(ShortFilename + GetExeExt, '',
                      GetEnvironmentVariableUTF8('PATH'), PathSeparator,
                      [sffDontSearchInBasePath]);
    Result := ABrowser <> '';
  end;

That looks for rundll32 on PATH but in my PATH there is not System32 directory where rundll32 is located.

So in order to find the default browser on Win I use this function:

function GetDefaultBrowser: string;
var
  Brow: string;
  {$IFDEF MSWINDOWS}
  Reg: TRegistry;
  {$ENDIF}
begin
  Brow:= '';
  {$IFDEF MSWINDOWS}
  Reg:= TRegistry.Create;
  with Reg do
  begin
    RootKey:= HKEY_CURRENT_USER;
    if OpenKeyReadOnly('SOFTWARE\Clients\StartMenuInternet') then
    begin
      Brow:=ReadString('');
      CloseKey;
      RootKey:=HKEY_LOCAL_MACHINE;
Brow:= Format('SOFTWARE\Clients\StartMenuInternet\%s\shell\open\command', [brow]);
      if OpenKeyReadOnly(brow) then
      begin
        Brow:=ReadString('');
        CloseKey;
      end;
    end;
  end;
  Reg.Free;
  Brow:= StringReplace(brow, '"', '', [rfReplaceAll]);
  {$ENDIF}
  Result:= Brow;
end;

If it does not work the user can change manually the browserpath property.


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to