Tech-Ecke / Delphi Inhalt /  Windows Registry

 

     Windows Registry

 

   Grundlegendes

Die Windows Registry gibt es ab Win95 und löst die bis dahin benutzte Win.ini ab. Sie  bietet die Möglichkeit, eigene Programmeinstellungen zu hinterlegen, sowie auf Einstellungen von Windows zuzugreifen. Alle Einstellungen werden in sogenannte Schlüssel (Key) hinterlegt. Dabei ist der Schlüssel zunächst nur als Ablagefach zu sehen. Die eigentliche Information wird als Wert (Value) Hinterlegt. Die Werte besitzen einen Datentyp, z.B. String, Integer, Boolean...
Die Registry kann mit dem Tool Regedit.exe angesehen und händisch bearbeitet werden.

   Zugriff auf die Registry

Um auf die Registry zugreifen zu können, muss die initialisiert werden, das geht mit folgendem code (var regist: TRegistry;):

     regist := TRegistry.Create;
try
   regist.RootKey := HKEY_CURRENT_USER;
 
   regist.OpenKey('EigenerSchluessel', true)  // wenn gelesen und geschrieben werden soll
  
//regist.OpenKeyReadOnly('EigenerSchluessel')  // wenn nur gelesen werden soll

  
// mach was -> siehe Bearbeiten

finally
 
regist.CloseKey;
 regist.free;
end;
 

   Bearbeiten

Hier in den Beispielen wird auf einen  Wert vom Typ String zugegriffen, analog gehen auch alle anderen Typen wie Integer, Boolean...
Vor jedem Zugriff auf einen Wert, muss der zugehörige Schlüssel geöffnet werden und sollte unmittelbar nach dem Zugriff wieder geschlossen werden.

 

   Schlüssel
 

Schlüssel erstellen:

  regist.CreateKey('EigenerSchluessel');
 

Schlüssel öffnen mit Rückgabewert true/false:

  if regist.OpenKey('EigenerSchluessel', true) then ShowMessage('Zugriff geglückt') else ShowMessage('Zugriffsfehler')
 

Schlüssel löschen:

  regist.DeleteKey('EigenerSchluessel');
 

 

   Werte


Wert erstellen und ändern:

  regist.OpenKey('EigenerSchluessel', true)
regist.WriteString('EigenerWert', 'MeineZeichenkette');
 


Wert auslesen:

Wenn Werte ausgelesen werden sollen, dessen Schlüssel durch Adminrechte geschützt sind, so muss die Methode OpenKeyReadOnly genommen werden, ansonsten kann auch OpenKey verwendet werden.

  var
 
 MeinString: String;

regist.OpenKeyReadOnly('EigenerSchluessel');
MeinString := regist.ReadString('EigenerWert');

ShowMessage(MeinString);
 


Wert löschen:

  regist.OpenKey('EigenerSchluessel', true)
regist.DeleteValue(
'EigenerWert');
 

 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 26.06.2011]