PDA

View Full Version : دسترسی به لیست Bookmark های مرورگر پیش فرض (IE,Firefox,Chrome)



hadisalahi2
دوشنبه 07 اسفند 1391, 17:51 عصر
با سلام به کلیه دوستان
من قصد دارم لیست کلیه آدرسهای موجود در Bookmark یا همون Favorite مرورگر پیش فرض رو بدست بیارم
و اونها رو وارد یک جدول بانک اطلاعاتی کنم
حالا بانک اطلاعاتی مهم نیست
فقط میخوام بدونم چطوری به لیست این آدرس ها دسترسی پیدا کنم

در ضمن من میخوام توی همه مرورگرها و مخصوصا این سه موردی که نوشتم لیست رو بدست بیارم
یه جورایی لیست بوک مارک ها رو از برنامه خودم Import کنم

ممنون میشم اگه دوستان اطلاعاتی دارند در اختیار بنده قرار بدهند

ممنون
یا حق

Valadi
دوشنبه 07 اسفند 1391, 19:35 عصر
با سلام

uses
ShlObj, ActiveX;

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 do
begin
// 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;
// find Subfolders
found := FindFirst(dir + '\*.*', faAnyFile, searchrec);
while found = 0 do
begin
if ((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 FreePidl(pidl: PItemIDList);
var
allocator: IMalloc;
begin
if Succeeded(SHGetMalloc(allocator)) then
begin
allocator.Free(pidl);
{$IFDEF VER100}
allocator.Release;
{$ENDIF}
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
pidl: PItemIDList;
FavPath: array[0..MAX_PATH] of Char;
begin
if Succeeded(ShGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl)) then
begin
if ShGetPathfromIDList(pidl, FavPath) then
ListBox1.Items := GetIEFavourites(StrPas(FavPath));
// The calling application is responsible for freeing the PItemIDList-pointer
// with the Shell's IMalloc interface
FreePIDL(pidl);
end;
end;

Valadi
دوشنبه 07 اسفند 1391, 19:39 عصر
با اين كامپونت SQLite3 مي تونيد

hadisalahi2
سه شنبه 08 اسفند 1391, 10:16 صبح
داداش این چیزی که نوشتی مال فقط IE هستش یا توی همه مرورگرها کار میکنه؟
در ضمن روش استفاده از اون کامپوننت چه طوریه و از کجا بگیرمش؟

hadisalahi2
پنج شنبه 10 اسفند 1391, 09:04 صبح
دوستان منتظر نظرات ارزشمند شما هستیم
لطفا راهنمایی کنید

سعید صابری
پنج شنبه 10 اسفند 1391, 11:15 صبح
فکر کنم هر مرورگری یک جای خاصی ذخیره می کنه IE در رجیستری و Firefox در یک فایل sqlite.

hadisalahi2
شنبه 12 اسفند 1391, 17:53 عصر
چه طوری اون فایل SqlLite رو گیر بیارم
چه طوری لیست رو از این فایل در بیارم

FastCode
شنبه 12 اسفند 1391, 18:10 عصر
مال فایرفاکس رو به این راحتی نمیتونی بخونی چون هم ممکنه رمز داشته باشه. و هم با هر ورژن ساختارش تغییر میکنه

$HOME/.mozilla/firefox/*
یکی از همین فایل هاست.
خودت نگاه کن ببین کدوماست.

سعید صابری
شنبه 12 اسفند 1391, 19:32 عصر
در آدرس زیر هست رمز و... هم نداره به راحتی می تونی بخونی.تاریخچه و کوکی و... همه اینجا هستند
پوشه c8p73e.default در هر سیستم متفاوت هست
C:\Users\Saberi\AppData\Roaming\Mozilla\Firefox\Pr ofiles\c8p73e.default

FastCode
شنبه 12 اسفند 1391, 20:03 عصر
http://www.itechmag.com/encrypt-firefox-bookmarks/

http://kb.mozillazine.org/Profile_folder_-_Firefox
http://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data?redirectlocale=en-US&redirectslug=Profiles