Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry Eintrag (Einfügen/Löschen) (https://www.delphipraxis.net/417-registry-eintrag-einfuegen-loeschen.html)

Gast 18. Jul 2002 09:11


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.

MathiasSimmack 18. Jul 2002 09:53

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:
cReg := TRegistry.Create;
try
  // mach hier was
finally
  cReg.Free;
end;
Alles folgende spielt sich zwischen try und finally ab -

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.

Gast 18. Jul 2002 10:38

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.

jbg 18. Jul 2002 11:06

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;

sakura 18. Jul 2002 11:09

Und zum Löschen
Code:
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;
:cat:

Luckie 18. Jul 2002 11:11

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:

Gast 18. Jul 2002 11:22

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...

MathiasSimmack 18. Jul 2002 12:43

Zitat:

Zitat von Paul Jr.
Ich stelle keine Anfänger :shock: Fragen mehr… falls ist das dies was Luckie meint...

Hi PaulJr.

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:

Vielleicht hat jemand etwas Source?
Yo! Die Delphi-Hilfe. :twisted: :P


Zu deiner Tipp-Antwort: Dann solltest du dafür sorgen, dass dein Programm auch nur von Administratoren gestartet werden kann.

Gruß,
Mathias.

Gast 18. Jul 2002 13:10

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