Funktionstüchtiger Registrykey unter allen Windows-Versionen
-
Hi Leute,
gibt es einen Registrykey in allen Windows Versionen (NT,2000,XP,9x) auf den man immer Schreiben kann?
Um meine frage etwas zu Präzisieren, ich schreibe ein Programm mit mehren Benutzern und ich will das Benutzerspezifische Daten in einen Key in die Registry geschriben wird. Geht das ohne dem Benutzer mit der Registry zu konfrontieren bzw. ohne Fehlermeldung, das der Registry-Key nicht gelesen oder geschrieben werden kann?mfG Tim
-
1.Gültige Keynamen gibt es schon mehrere. Das Problem ist, dass der Anwender Admin-Status haben muß, damit das Programm in die Registrierung schreiben darf, bzw. neue Schlüssel anlegen darf.
2.Gültige Namen sind z.Bsp.:
HKEY_LOCAL_MACHINE
HKEY_CURRENT_USER
Diese sind in allen Windows-Versionen zu finden.
-
Kein BCB-spezifisches Problem, verschoben nach "Rund um".
-
m@loo schrieb:
1.Gültige Keynamen gibt es schon mehrere. Das Problem ist, dass der Anwender Admin-Status haben muß, damit das Programm in die Registrierung schreiben darf,
Das ist nicht richtig.
Es hängt von der Sicherheitseinstellung eines Schlüssels ab, ob und welcher User Operationen darauf durchführen darf.
Allgemeine Verweise gehören im Regelfall nach HKEY_LOCAL_MACHINE/Software/bla, userabhängige Keys gehören nach HKEY_CURRENT_USER/Software/bla.
Trotzdem empfehle ich beim heutigen Stand der Entwicklung die Verwendung der Registry ausdrücklich NICHT mehr. .NET arbeitet wieder mit Dateien.
Verzicht auf Registry heißt auch, daß man ohne aufwendigen Installer auskommen kann und daß die Deinstallation/Installation Copy-Deployment unterstützt.
Daher:
userabhängige Dateien im entsprechenden Pfad von "Dokumente und Einstellungen/Anwendungsdaten" in einem Verzeichnis anlegen (z.B. als XML-Datei)
allgemeine Programmdateien im entsprechenden Pfad von "Dokumente und Einstellungen/All Users" anlegen.Damit das Programm sprachunabhängig läuft, kann man sich den Namen für diese Pfad über die WinAPI ermitteln lassen, so daß man auch bei englischem Windows dann "Documents and Settings" erhält (SHGetFolderPath).
-
@Marc++us: Da hast du natürlich Recht (im Bezug auf's Schreiben) - Ich meinte auch mehr das Anlegen eines Schlüssels, welches AFAIK nur mit Admin-Rechten funktioniert - lasse mich da aber auch gerne eines besseren Belehren.