Accessing Internet Explorer favorites is not hard since they are nothing more than files and folders. All you have to basically do is find the IE Favorites folder, then read it’s structure and file list. Once this is done you will need to read the URL that’s in each of the files. Sounds easy? You can always use the code below… ;->
function GetIEFavorites(const Path: string): TStrings;
var
Buffer: array[0..2047] of Char;
iFound: Integer;
Dir, FileName, Path: string;
SearchRec: TSearchRec;
Links: TStrings;
begin
Links := TStringList.Create;
// Get all file names in the favourites path
Path := FavPath + '*.url';
Dir := ExtractFilepath(Path);
iFound := FindFirst(Path, faAnyFile, searchrec);
while iFound = 0 do begin
// Get now URLs from files
Setstring(FileName, Buffer, GetPrivateProfilestring('InternetShortcut',
PChar('URL'), nil, Buffer, SizeOf(Buffer), PChar(Dir + SearchRec.Name)));
Links.Add(FileName);
iFound := FindNext(SearchRec);
end;
// Find subfolders
iFound := FindFirst(Dir + '*.*', faAnyFile, searchrec);
while iFound = 0 do begin
if ((SearchRec.Attr and faDirectory) > 0) and (SearchRec.Name[1] <> '.') then
Links.Addstrings(GetIEFavorites(dir + '' + SearchRec.Name));
iFound := FindNext(searchrec);
end;
FindClose(SearchRec);
Result := Links;
end;
...
procedure FreePidl(pIDL: PItemIDList);
var
Allocator: IMalloc;
begin
if Succeeded(SHGetMalloc(Allocator)) then begin
Allocator.Free(pIDL);
{$ifdef VER100}
Allocator.Release;
{$endif}
end;
end;
...
var
FavPath: array[0..MAX_PATH] of Char;
pIDL : PItemIDList;
begin
if Succeeded(ShGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pIDL)) then begin
if ShGetPathfromIDList(pIDL, FavPath) then
ListBox1.Items := GetIEFavourites(StrPas(FavPath));
// We are responsible for freeing the PItemIDList pointer with the
// Shell's IMalloc interface
FreePIDL(pIDL);
end;
end;
Tags: accessing internet, bookmarks, borland, code, Delphi, download, explorer, favorites, favorites folder, filename path, folder, freeware, get, getprivateprofilestring, how to, ie, internet, internet explorer, internet explorer favorites, open source, path string, retrieve, source, tip, trick
Merlin’s Delphi Forge
Leave a comment