Das folgende Beispiel zeigt, wie man Werte in die Registry schreibt.Dabei wird standardmäßig der Key unter HKEY_CURRENT_USER angelegt. Wird ein anderes Verzeichnis gewünscht, so ist die Eigenschaft RootKey zu setzen.
#include <vcl/Registry.hpp> .... //Eine neues TRegistry Object angelegen TRegistry& regkey=*new TRegistry(); //Wenn abweichend von HKEY_CURRENT_USER den RootKey setzen (das ist ein INT-Wert!!): regkey.RootKey=HKEY_LOCAL_MACHINE; //Den gewünschten Schlüssel vorgeben true = //wenn der Schlüssel nicht existiert wird er angelegt bool keygood=regkey.OpenKey("Software\\Mein Programm",true); //Werte sofort in die Registry schreiben; nicht erst beim Close regkey.LazyWrite=false; //Wenn ein gültiger Schlüssel da ist if(keygood) { //Schreiben eines boolschen Wertes BOOLTEST ist //der Name des Wertes, bo der Inhalt regkey.WriteBool("BOOLTEST",bo); //Schreiben eines Strings STRINGTEST ist der //Name "Hallo" ist der Wert regkey.WriteString("STRINGTEST","Hallo"); } //Registry schliessen regkey.CloseKey(); //Objekt löschen delete ®key;Die Funktion WriteInteger u.a. arbeiten analog.
Das folgende Beispiel zeigt, wie man Werte aus der Registry liest:
//Eine neues TRegistry Object angelegen
TRegistry& regkey=*new TRegistry();
//Wenn abweichend von HKEY_CURRENT_USER den RootKey setzen (das ist ein INT-Wert!!):
regkey.RootKey=HKEY_LOCAL_MACHINE;
//Den gewünschten Schlüssel vorgeben
//hier jetzt false (nur lesen wenn auch da)
bool keygood=regkey.OpenKey("Software\\Mein Programm",false);
//Wenn ein gültiger Schlüssel da ist
if(keygood)
{
//Wenn unser Wert da ist
if(regkey.ValueExists("BOOLTEST"))
{
//wird er in die Variable bo (bool) gelesen
bo=regkey.ReadBool("BOOLTEST");
}
//Wenn unser Wert da ist erhält die
//Variable st den Inhalt ansonsten "kein Wert"
regkey.ValueExists("STRINGTEST")?st=regkey.
ReadString("STRINGTEST"):st="kein Wert";
}
//Registry schliessen
regkey.CloseKey();
//Objekt löschen
delete ®key;