![]() |
Registry Eintrag (Einfügen/Löschen)
Hallo System Profis
Ich möchte in Registry einen Eintrag einfügen: unter: HKEY_LOCAL_MACHINE/SOFTWARE möchte ich ein Ordner 'TEST' erzeugen. Darüber hinaus möchte ich in dem Ordner 'TEST' einen weiteren Eintrag 'UNTTEST' erzeugen. Anschließend sollte (später) der Eintrag 'UNTTEST' gelöscht werden. Wie mache ich das...Registry Eintrag an bestimmter Position einfügen bzw. löschen? Gruß Paul Jr. |
Ich will ja nicht gehässig erscheinen, aber das steht alles in der Hilfe.
Aber mal sehen, ob ich´s dir ohne viel Code erklären kann. 1. Du deklarierst eine Variable vom Typ "TRegistry". 2. Du greifst auf die Registry über ein solches Konstrukt zu:
Code:
Alles folgende spielt sich zwischen try und finally ab -
cReg := TRegistry.Create;
try // mach hier was finally cReg.Free; end; 3. Als Ausgangspunkt (oder "RootKey") setzt du HKEY_LOCAL_MACHINE. 4. Du öffnest den Schlüssel "SOFTWARE\TEST" und lässt ihn ggf. erzeugen, falls er noch nicht existiert. 5. Du schreibst einen String, Integer oder Bool-Wert namens "UNTTEST". 6. Du schließt den Schlüssel. 7. Zum Löschen gibt es zwei Möglichkeiten: a) du kannst den Schlüssel löschen, b) du kannst einen Eintrag in diesem Schlüssel löschen. So. ich habe extra Worte benutzt, die dich auf die richtige Spur bringen sollten, wenn du dir das Thema "TRegistry" mal in der Hilfe anschaust. Tipp Wenn du auf diese Weise Einstellungen deines Programms in der Registry hinterlegen möchtest, dann solltest du den Schlüssel HKEY_CURRENT_USER benutzen! Ansonsten wirst du unter Garantie erboste Mails usw. von Leuten bekommen, die auf NT-Systemen (NT, 2000, XP) nicht über ausreichende Rechte verfügen, um auf HKLM zugreifen zu können. |
Hallo Mathias, 8)
also so weit war ich schon auch. Ich habe gehofft, dass jemand schon etwas fertiges hat . So oder so danke für deine Hilfe. Vielleicht hat jemand etwas Source? Paul Jr. P.S. zum Deinem Tipp: Dies sollte NUR durch Administratoren ausgeführt werden. |
Die Methode TRegistry.OpenKey erzeugt einen neuen Schlüssel, wenn dieser noch nicht vorhanden ist, und er 2. Parameter auf True gesetzt wird:
Code:
reg := TRegistry.Create;
try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('\Software\Test', True) then begin ... reg.CloseKey; end; if reg.OpenKey('\Software\Test\UniTest', True) then begin ... reg.CloseKey; end; // oder: reg.CreateKey('\Software\Test\UniTest'); finally reg.Free; end; |
Und zum Löschen
Code:
:cat:
reg := TRegistry.Create;
try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('\Software\Test', True) then begin ... DeleteKey('UniTest'); reg.CloseKey; end; finally reg.Free; end; |
Also PaulJr, jetzt mach mich bitte nicht schwach. :shock:
Hast du noch nie mit der Registry gearbeitet? Und die Hilfe dürfte dir doch auch bestimmt kein Fremdwort sein oder? :roll: |
Danke Männer, :D
das reicht... ich komme schon weiter... Gruß Paul Jr. P.S. Ich stelle keine Anfänger :shock: Fragen mehr… falls ist das dies was Luckie meint... |
Zitat:
ich erinnere mich, dass du lange vor mir bereits im DF aktiv warst. Insofern habe ich schlicht vorausgesetzt, dass du entsprechendes Grundwissen usw. besitzt. Wenn ich mir aber die Hilfe zur Registry-Unit betrachte, dann bekomme ich gleich am Anfang ein Beispiel, wie ich meine Anwendung unter "RunOnce" eintragen kann. Da hast du im Prinzip die Grundkonstruktion eines Registryzugriffs. Alles, was dazu zu tun ist, wäre "Registry" eintippen, den Cursor drauf setzen und F1 drücken. :wink: Insofern: Zitat:
Zu deiner Tipp-Antwort: Dann solltest du dafür sorgen, dass dein Programm auch nur von Administratoren gestartet werden kann. Gruß, Mathias. |
Outsch... is ja gut...
Ich besitze nicht nur Grund-Wissen sonder noch etwas mehr ...nun...leider war ich zu faul die F1-Taste zu drücken... ES TUT MIR LEID!!! Werden wir das jetzt noch weiter diskutieren...? – Ich glaube es reicht jetzt. Zu Deinem Tipp: Ich programmiere jetzt gerade ein Installations-Programm für eine sehr große Anwendung...für Administratoren... und bin sehr unter Zeit-Druck... ...hätte ich bloß in der Hilfe nachgeschaut (ich Dummkopf) würde ich weniger Zeit verlieren, als jetzt(!!!) um mich hier rechtfertigen zu müssen..., he, he Also Männer noch einmal: Mea Culpa, Mea Culpa, Mea Maxima Culpa Gruß Paul Jr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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