Встречаются два ярых интернетчика...
Один - другому:
- Слуууухай... Вчера на Мясницкой таакууую деевушку встретил... Познакомится не успел... :о( Гдееее её теперь искать....
Тот ему:
- Не, ну ты чё, её букмаркой не заложил, что ль???
function GetIEFavourites(const favpath: string): TStrings;
var
searchrec: TSearchrec;
str: TStrings;
path, dir, filename: string;
Buffer: array [0..2047] of Char;
found: Integer;
begin
str := TStringList.Create;
//Get all file names in the favourites path
path := FavPath + '\*.url';
dir := ExtractFilepath(path);
found := FindFirst(path, faAnyFile, searchrec);
while found = 0 dobegin//Get now URLs from files in variable files
SetString(filename, Buffer, GetPrivateProfileString('InternetShortcut',
PChar('URL'), nil, Buffer, SizeOf(Buffer), PChar(dir+searchrec.name)));
str.Add(filename);
found := FindNext(searchrec);
end;
//unterordner finden
found := FindFirst(dir + '\*.*', faAnyFile, searchrec);
while found=0 dobeginif ((searchrec.Attr and faDirectory) > 0) and (searchrec.name[1] <> '.') then
str.AddStrings(GetIEFavourites(dir + '\' + searchrec.name));
found := FindNext(searchrec);
end;
FindClose(searchrec);
Result := str;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
pidl: PItemIDList;
FavPath: array [0..MAX_PATH] of char;
begin
SHGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl);
SHGetPathFromIDList(pidl, favpath);
ListBox1.Items := GetIEFavourites(StrPas(FavPath));
end;
Программа на языке Delphi, которая извлекает закладки (фавориты) из Интернет-эксплорера и отображает их в списке.
Функция GetIEFavourites
Эта функция принимает путь к папке Фавориты как входной параметр и возвращает TStringList, содержащий URL-адреса закладок. Вот что она делает:
Создает пустой объект TStringList.
Устанавливает путь к папке Фавориты, конкатенируя параметр FavPath с *.url. Это находит все файлы с расширением .url, которые обычно используются для закладок в Интернет-эксплорере.
Использует функции FindFirst и FindNext для перебора файлов в папке Фавориты. Для каждого найденного файла:
Использует функцию GetPrivateProfileString для извлечения URL-адреса из файла (который хранится в разделе InternetShortcut с ключом URL). Извлеченный URL-адрес добавляется к TStringList.
После обработки всех файлов, она рекурсивно ищет подпапки и добавляет их содержимое к TStringList.
Процедура Button1Click
Эта процедура вызывается при клике кнопки на форме. Она делает следующее:
Использует функцию SHGetSpecialFolderLocation для получения списка идентификаторов (PIDL) папки Фавориты.
Использует функцию SHGetPathFromIDList для конвертации PIDL в файловый путь.
Вызывает функцию GetIEFavourites с конвертированным путем и присваивает результат свойству Items списка ListBox1.
Замечания
Код предполагает, что папка Фавориты находится в стандартном месте (то есть %USERPROFILE%\Favorites).
Код использует класс TStringList для хранения URL-адресов, что обеспечивает удобный способ манипулирования и отображения результатов.
Код использует функции SHGetSpecialFolderLocation и SHGetPathFromIDList из Shell API для взаимодействия с оболочкой Windows. Эти функции используются для получения пути папки Фавориты.
В целом, это код обеспечивает простой способ извлечения и отображения закладок (фаворитов) из Интернет-эксплорера в приложении на языке Delphi.
В статье описывается как получить закладки Internet Explorer с помощью программирования на языке Delphi и использованием функции SHGetSpecialFolderLocation для поиска пути к папке "Закладки" в системном реестре.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.