![]() |
Wie speichert Mozilla und Konsorten die Bookmarks?
So, da ich ja gerade an meinem Bookmark-Checker dran bin und mir gesagt wurde, dass das über die Datei zu umständlich ist, wüßte ich gerne, wie der Mozilla seine Bookmarks speichert. Im Programm Ordner habe ich in einem Unterornder die Datei bookmarks.htm gefunden, die genauso aussieht wie die vom Explorer. Nur hab eich da mal was gelöscht und es sieht nicht so aus, als ob das irgendwelche Auswirkungen auf die Bookmarks im Porgramm hätte. Kann mir da jemand weiterhelfen?
|
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Doch Auswirkungen müsste es schon haben. Der Mozilla sollte natürlich nicht laufen, wenn du die Datei extern bearbeitest. Ob es eine Rolle spielt, weiß ich nicht, aber es wäre ja denkbar, dass der Browser die Datei automatisch beim Beenden aktualisiert.
Und mit einem HTML-Parser müsstest du bei der Datei ohnehin am besten wegkommen. Die einfachste Lösung (allerdings nur zum Testen): nimm mal einen TWebBrowser, damit kannst du dann auf die ganzen vorhandenen Links zugreifen. Quasi wie in JavaScript, nur halt im Delphi-Programm. Ich sage das deshalb, weil ich bspw. nicht wusste, nach welchem Prinzip deine bisherige Version arbeitet. Darum habe ich ihr mal die "bookmarks.html" des Mozilla vorgesetzt. Und da bemängelte dein Programm natürlich auch prompt Sachen, die gar keine Links waren. |
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Moin Luckie,
überwach' doch mal mit RegMon/FileMon, was passiert, wenn Du in Mozilla Bookmarks anlegst bzw. löscht. |
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
@MS: So mache ich es bisher:
Delphi-Quellcode:
Wenn Mozilla die Bookmarks wirklich nur in dieser Datei verwaltet, dann geht das automatische Auslesen wirklich nur mit dem IE.
function ExtractBookmarksFromFile(BookmarkFile: string): TStrings;
const BEGINLINK = 'http://'; ENDLINK = '" '; var F: TextFile; sl: TStringList; s: string; StartPos, EndPos: Cardinal; begin result := nil; SetLastError(0); AssignFile(F, BookmarkFile); {$I-} Reset(F); {$I+} if IOResult = 0 then begin sl := TStringList.Create; try while not EOF(F) do begin readln(F, s); StartPos := Pos(BEGINLINK, s); EndPos := Pos(ENDLINK, s); s := copy(s, StartPos, EndPos - StartPos); if length(s) > 0 then sl.Add(s); end; finally result := sl; //FreeAndNil(sl); end; end; end; |
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Mozilla speichert die Bookmarks in dieser Datei. Die Datei wird bei jeder Aenderung sofort aktualisiert.
|
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Aha. Danke. dann ist es ja doch recht einfach. Nur werde ich es dem User nicht ersparen können, die Datei selber auszuwählen.
|
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Ich hatte immer die falsche Bookmark-Datei am Wickel. Hier liegt die richtige:
C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\Mozill a\Profiles\default\yzx3pvd6.slt\bookmarks.html |
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Na ja, wenn schon dann:
Code:
Das muss man irgendwo auslesen können. Jetzt frag mich aber mal ... ich weiß es nicht ... :oops: Ich möchte aber behaupten, der Pfad steht irgendwo in der Registry bzw. in einer Datei.
Dokumente und Einstellungen\[i]Benutzername[/i]\Anwendungsdaten\Mozilla\Profiles\default\[i]zufälliger Name[/i]\bookmarks.html
|
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Ja logisch. Aber in der Registry habe ich schon gekuckt, da habe ich nichts gefunden. Ich werde die Dateien noch mal durchkucken.
|
Re: Wie speichert Mozilla und Konsorten die Bookmarks?
Moin Mathias,
man sollte in keinem Falle die Position des Profils mit Hilfe von "Dokumente und Einstellungen\Benutzername" ermitteln, sondern über den Inhalt der Variablen USERPROFILE bzw. über CSIDL_PROFILE, denn wenn mal ein User umbenannt wird, so bleibt der Profilpfad unverändert erhalten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz