QUICK TIPS: Recuperar Favoritos do IE

Vamos falar neste QUICK TIPS, como pegar os Favoritos do IE.

Olá galera,

Vamos falar neste QUICK TIPS, como pegar os Favoritos do IE. Como todos sabem e possível salvar nos navegadores os link das sites que você acha interessante como favoritos. Bem o que muita gente talvez não saiba e que você pode recuperar este lista através do Delphi. O mais legal é que a API do Windows, que não é pequena já nos fornece um mecanismo para isso.

Dê uses em ShlObj;

Declare a seguinte Function

function GetIEFavoritos(const favpath: string):TStrings;
var
  searchrec:TSearchrec;
  S:TStrings;
  path,dir,filename:String;
  Buffer: array[0..2047] of Char;
  found:Integer;
begin
  S:=TStringList.Create;
  path:=FavPath+'\*.url';
  dir:=ExtractFilepath(path);
  found:=FindFirst(path,faAnyFile,searchrec);
  while found=0 do
    begin
       SetString(filename, Buffer, GetPrivateProfileString('InternetShortcut', PChar('URL'), NIL, Buffer, SizeOf(Buffer), PChar(dir+searchrec.Name)));
    S.Add(filename);
    found:=FindNext(searchrec);
    end;
  found:=FindFirst(dir+'\*.*',faAnyFile,searchrec);
  while found=0 do begin
    if ((searchrec.Attr and faDirectory) > 0) and (searchrec.Name[1]<>'.') then
    S.AddStrings(GetIEFavoritos(dir+'\'+searchrec.name));
    found:=FindNext(searchrec);
  end;
  FindClose(searchrec);
  Result:=S;
end;

A variável  searchrec  é um TSearchRec que é uma classe do Delphi para ler todos os arquivos a partir de uma determinada máscara. Serve basicamente para fazer buscas atrás de um arquivo qualquer. Já faAnyFile é a constante usada pelo Windows para definir que o que você está procurando... existem outras como faDirectory, aArchive , etc.

O retorno de FindFirst/FindNext é 0 quando um arquivo é encontrado. Caso contrário, o retorno é uma mensagem de erro. TSearchRec pode retornar também diretórios, se você quiser fazer uma busca incluindo sub-diretórios.


No Clique de um botão, por exemplo, coloque o código abaixo

var pidl: PItemIDList;
   FavPath: array[0..MAX_PATH] of char;
begin
  SHGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl);
  SHGetPathFromIDList(pidl, favpath);
  ListBox1.Items:= GetIEFavoritos (StrPas(FavPath));
End;

Até a próxima.

Wesley Y
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados