Registry & API

Hi,

wie kann man mit API auf die Registry zugreifen?
Kann man diese Befehle so umsetzen?

TRegistry.ReadString();
TRegistry.ReadInteger();

TRegistry.WriteString();
TRegistry.WriteInteger();

Es gibt da Funktionen wie RegSetValueEx usw. aber wie wendet man die an?

Danke schonmal,

B^B

wie kann man mit API auf die Registry zugreifen?
Kann man diese Befehle so umsetzen?

TRegistry.ReadString();
TRegistry.ReadInteger();

TRegistry.WriteString();
TRegistry.WriteInteger();

Es gibt da Funktionen wie RegSetValueEx usw. aber wie wendet
man die an?

Die von dir genannten Routinen sind lediglich Kapselungen der API-Aufrufe. Wenn du wissen willst, was sich hinter ReadInteger etc. verbirgt, schau die die Unit REGISTRY an. Aber ausser mehr Tipparbeit bringt das eigene API-Aufrufen eig. nicht.

Hallo

Um die Registry zu benutzen, muss man erst eine Instanz der TRegistry-Klasse deklarieren:
var
reg: TRegistry;
und natürlich erstellen:
reg := TRegistry.Create();
Wenn man nur Lesezugriff braucht, benutzt man am besten:
reg := TRegistry.Create(KEY_READ);

Dann muss der entsprechende Bereich (RootKey) geöffnet werden
reg.RootKey := HKEY_CURRENT_USER;
oder
reg.RootKey := HKEY_LOCAL_MACHINE;

Als nächstes muss der Schlüssel geöffnet werden, z. B.:
reg.OpenKey(’\Software\Hersteller\Programmname’,false);
Oder wenn der Schlüssel bei Nichtexistieren automatisch erstellt werden soll:
reg.OpenKey(’\Software\Hersteller\Programmname’,true);

Dann kann man mit
reg.ReadString(‚wertname‘); // Zeichenfolge lesen
oder
reg.ReadInteger(‚wertname‘); // DWORD-Wert lesen (dezimal)
die entsprechenden Werte auslesen.

Mit
reg.WriteString(‚wertname‘,‚inhalt‘); // Zeichenfolge schreiben
oder
reg.WriteInteger(‚wertname‘,zahl); // DWORD-Wert schreiben (dezimal)
kann man Werte schreiben.

Danach wieder freigeben:
reg.Free;

Mit freundlichen Grüßen
Aaron Spettl
(www.win-tuning.de)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Yo,
die Unit hab ich mir schon angeguckt.
Das ist wirklich extrem mehr Arbeit als sonst.
Ich wollte sowieso eine eigene Registry-Unit auf NonVCL Basis erstellen, die sämtlice Funktionen davon beinhaltet.

Ein Vorteil : Wenn man eine nonVCL Anwendung schreibt und die Registry Unit einbindet, ist das Programm dann gleich mal 100 KB größer (158 KB). Binde ich meine Unit ein, ist das Programm wieder 48 KB groß.

Trotzdem danke
Chris