Banale Frage zur Windows Registry



  • Aloha,

    reines Interesse meinerseits, weil ich nicht so Windows-System-firm bin.

    Wofür ist eigentlich die Registry da ?

    Die Frage klingt deswegen so banal, weil ich ne kleine Software entwickle, die auch natürlich ohne Eintrag in der Windows - Registry läuft.
    Nun bin ich am Überlegen, ob ich mir die Arbeit mache, und beim Setup die Software in der Registry "registriere".

    Vorteile die mir bekannt sind, das man über Windows dann die Un-Install Routine steuern kann.

    Nachteile, wenn man das nicht ordentlich deinstalliert, hat der User immer Dreck in der Registry ( und das ist meistens so 🙂 )

    Also, wirklich ganz banal, warum werden die meisten Programme in die Registry geschrieben.

    Ne Faq, die mich über den Sinn und Zweck einer Registry aufklärt, wäre auch klasse.

    Beste Grüße

    Der BOA



  • ab in das WinAPI Forum



  • Original erstellt von BOA:
    **Wofür ist eigentlich die Registry da ?
    **

    Die Registry ist ein Ort, an dem Programme ihre Einstellugnen hinetrlassen können. Früher hat jedes Programm im Windows-Verzeichnis eine Programmname.INI erstellt und da seine Datein hinterlassen. Alternativ in der WIN.INI. Das wird irgendwann unglaublich hässlich, deswegen hat Microsoft eien "Datenbank" geschaffen, in der Programme in einer Baumartigen Struktur alle EInstellungen nach Herzenslust ablegen können, das Ding heißt nun Registry. Uninstall-Routinen gehören auch noch zu den Dingen, die als Einstellungen in der Registry liegen, ebenso wie die ganzen Windows-Einstellungen.

    **
    Die Frage klingt deswegen so banal, weil ich ne kleine Software entwickle, die auch natürlich ohne Eintrag in der Windows - Registry läuft.
    Nun bin ich am Überlegen, ob ich mir die Arbeit mache, und beim Setup die Software in der Registry "registriere".

    Vorteile die mir bekannt sind, das man über Windows dann die Un-Install Routine steuern kann.

    Nachteile, wenn man das nicht ordentlich deinstalliert, hat der User immer Dreck in der Registry ( und das ist meistens so 🙂 )
    **

    Solange dein Programm keine Einstellungen speichert, brauchst du ansich auch nichts in die Registry machen. Was Uninstall-Schlüssel angeht: Solaneg dein Programm mehr ein kleines Tool ist,w as vielelicht aus 2-3 Dateien besteht, und keinen Installer hat, kann man sich die Uninstall-ROutine wirklich sparen. Wenn du einen Installer hast, kann man durchaus eine Routine hinetrlegen, oder mindestens im Startmenü beim Programmicon ein Deinstallieren-Icon hinterlassen, das ist Intuitiver, wenns zu einem Installieren ein Deinstallieren gibt, anstatt manuell den Ordner zu löschen.



  • Aloha zurück,

    ja, vielen Dank für die schnelle und ausführliche Antwort.
    Mein Proggi initialisiert bis dato wenig.

    Mal schauen, wie sich das weiterentwickelt.

    Jetzt mal ne spannende Frage, schön formuliert 🙂

    Wie realisiere ich von C++ aus nen Zugriff auf die Registry ?

    Grüße

    Der BOA





  • 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