Lesen / Schreiben von Windows 7-Bibliotheksverzeichnissen

Intro

In Windows 7 gibt es einige spezielle Ordner für Dokumente, Bilder und Musik usw., die als Bibliotheken bezeichnet werden.

Wenn Sie sich dessen nicht bewusst sind, kann jeder Bibliotheksordner Speicherorte (Pfade) enthalten, die im Grunde genommen Verknüpfungen für jede Bibliothek sind.

Einige Beispiele:

Documents (Library)

E: \ Personal \ Documents(Location)F: \ Backups \ Documents(Location)

Music (Library)

E: \ Media \ Music \ Albums(Location)E: \ Media \ Music \ Singles(Location)

Pictures (Library)

E: \ Medien \ Fotos(Location)

Wenn Sie in Windows Explorer oder im Startmenü auf einen dieser Bibliotheksordner klicken, wird Windows Explorer mit den in dieser Bibliothek definierten Speicherorten angezeigt.

Aufgabe

Ich muss in der Lage sein, die Speicherorte für jeden Bibliothekstyp zu lesen und die Bibliothek mit meinen eigenen Speicherorten zurückzuschreiben (zu aktualisieren). Ich habe festgestellt, dass die Bibliotheken im Benutzer-AppData-Ordner wie folgt gespeichert sind:

C:\Users\SOMEUSER\AppData\Roaming\Microsoft\Windows\Libraries

Diese Bibliotheken haben folgenden Dateityp:Bibliothek (.library-ms) - Wenn Sie mit der rechten Maustaste auf eine klicken und Eigenschaften auf der Registerkarte Bibliothek auswählen, werden die mit dieser Bibliothek verknüpften Bibliotheksspeicherorte angezeigt.

Ich sehe keine Möglichkeit, diese zu extrahieren und sie beispielsweise zur Bearbeitung in Delphi in eine TStringList zu kopieren. Ich habe mich gefragt, ob diese Bibliotheksverzeichnisse tatsächlich in der Windows-Registrierung gespeichert sind. Bei einigen Recherchen von Google habe ich die folgenden Pfade gefunden:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell-OrdnerHKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Benutzer-Shell-Ordner

Aber auch hier wird die aktuelle Liste der Bibliotheksstandorte nicht angezeigt.

Wie kann ich also die Liste der Speicherorte in einer Bibliotheksdatei in Delphi lesen, sie zu einer Listbox oder TStringList hinzufügen, die Einträge bearbeiten und die Änderungen dann zurückschreiben? Nur die Pfade des Bibliotheksverzeichnisses extrahieren zu können, wäre ein Anfang.

Ich habe nur das Gefühl, dass dies eine dieser Fragen sein wird, die eine einfache Antwort haben, die ich anscheinend nicht finden kann!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage