Banale Frage zur Windows Registry





  • oder das hier



  • BOA, bevor Du Dein Programm aber so änderst, daß es Registry-Schlüssel erzeugt und anlegt: der Trend geht in jüngster Zeit weg von Registry-Einträgen und wieder zurück zum "Copy-Deployment", d.h. alle Einstellungen sind lokal verfügbar. .NET macht es vor - eine eindeutige Abkehr von der Registry ist hier zu finden. Dort wird wieder alles lokal in XML-Dateien gespeichert und nicht mehr in einer globalen Datenbank.

    Auf den letzten MSDN-Veranstaltungen war das zwischen den Zeilen deutlich zu vernehmen: die Registry war nicht so die glückliche Idee, zumindest nicht für Daten und Einstellungen.



  • Wenn ich aber benutzerspezifisch Einstellungen unterstützen will, dan nmuß ich aber ohne die Registry ziemliche Klimmzüge machen. Desweiteren, wenn mein Programm in einem Ordner installiert wird, wo der normale Benutzer keine Schreibrechte hat, muß ich erst seinen Ordner suchen und meine Ini da irgendwo ablegen.



  • Ich find die Registry aus einem Grund ziemlich schlecht: Die gespeicherten Einstellungen sind nach ner Windowsneuinstallation verloren. Ich installier zb alle Programme auf ne Extrapartition. Die meisten laufen nämlich auhc ohne Installation, das heisst, dass ich sie nach einer Windowsneuinstallation nicht neu installieren muss und auhc meine Einstellungen nicht verloren hab.



  • http://www.winguides.com/registry/

    Das OS benötigt die Registry selbst am meisten.



  • Luckie schrieb:

    Wenn ich aber benutzerspezifisch Einstellungen unterstützen will, dan nmuß ich aber ohne die Registry ziemliche Klimmzüge machen. Desweiteren, wenn mein Programm in einem Ordner installiert wird, wo der normale Benutzer keine Schreibrechte hat, muß ich erst seinen Ordner suchen und meine Ini da irgendwo ablegen.

    Warum das? Du kannst Dir vom aktuellen Benutzer dessen "Dokumente und Einstellungen"-Ordner über einen WinAPI-Aufruf holen... dort unter Application Data z.B. ein Unterverzeichnis und alle Dateien rein. Für die jeweiligen Pfadtypen gibt's API-Funktionen, die den Pfad sogar richtig in Abhängigkeit der Systemsprache ermitteln, also "Documents" oder "Documenti" oder was auch immer.

    Danach ist der Rest nur noch reines Dateihandling. Erscheint mir für Daten wesentlich schöner.

    Vor allem, wenn der User mal eine Einstellung auf einen anderen User übertragen will, so kann er dessen Datei kopieren und einfach dem anderen per Mail schicken, der kopiert diese in seinen eigenen Ordner. Versuch das mal mit der Registry.



  • @Marc++us

    .NET macht es vor - eine eindeutige Abkehr von der Registry ist hier zu finden. Dort wird wieder alles lokal in XML-Dateien gespeichert und nicht mehr in einer globalen Datenbank.

    Und wie funktioniert das mit dem C++Builder und XML ? Ist INI out ?

    Gruß WoWe



  • Der neue Builder unterstützt XML doch ganz prächtig.

    Abgesehen davon sind auch Ini-Files immer noch leichter verwalten als Registry-Einträge. Ini out ist schwierig - zuerst waren ini-Dateien aktuell, danach wurden die Ini-Dateien automatisch in die Registry gemappt, und nun geht's wieder zu Dateien. Insofern denke ich mir, daß die klassische Ini-Datei wieder sehr in ist... nur nicht in die Registry gemappt.

    Man muß solche Probleme einfach nur aussitzen... seit Umstieg auf Win95 habe ich für eigene Programme noch nie die Registry benutzt. Und siehe, 6-7 Jahre später läuft sie so langsam wieder aus. Hat sich also gelohnt hartnäckig zu bleiben. 🙂

    Insofern wird sich die Registry wohl auch mehr wieder auf Windows-Einstellungen zurück ziehen, aber wenn MS selbst Userdaten lieber wieder in Dateien ablegt, ist die Zielrichtung klar erkennbar.



  • Gab ja doch verschiedene Meinungen hierzu, was das Arbeiten mit oder ohne die Registry angeht.

    Als Fazit halte ich ne "Ordner-eigene" ini für mich persönlich sinnvoller, und das nicht, weil der Trend "angeblich" wieder in die Richtung führt.

    Ich denke bezüglich der Testphase des Programms ist es doch angenehmer, als wenn ich ständig in die Registry schauen muß, um zu sehen, ob alle Variablen richtig abgelegt wurden.

    Nochmals Dank an alle Antworter, und die die reingeschaut haben.

    Grüße

    Der BOA


Anmelden zum Antworten