Registret är helt enkelt en databas som en applikation kan använda för att lagra och hämta konfiguration information (sista fönsterstorlek och position, användaralternativ och information eller annan konfiguration data). Registret innehåller också information om Windows (95/98 / NT) och om din Windows-konfiguration.
Registerdatabasen lagras som en binär fil. För att hitta det kör du regedit.exe (Windows-redigeringsverktyg) i din Windows-katalog. Du kommer att se att information i registret är organiserad på samma sätt som Windows utforskaren. Vi kan använda regedit.exe för att se registerinformation, ändra den eller lägga till lite information till den. Det är uppenbart att ändringar av registerdatabasen kan leda till en systemkrasch (naturligtvis om du inte vet vad du gör).
Det är förmodligen mycket välkänt att under Windows 3.xx INI-filer var ett populärt sätt att lagra applikationsinformation och andra användarkonfigurerbara inställningar. Den mest skrämmande aspekten av INI-filer är att de bara är textfiler som användaren enkelt kan redigera (ändra eller till och med radera dem). I 32-bitars Windows rekommenderar Microsoft att du använder register för att lagra den typ av information som du normalt skulle placera i INI-filer (det är mindre troligt att användare ändrar registerposter).
Delphi ger fullt stöd för att ändra poster i Windows systemregister: via klassen TRegIniFile (samma grundläggande gränssnitt som TIniFile klass för användare av INI-filer med Delphi 1.0) och TRegistry-klassen (låg nivåomslag för Windows-registret och funktioner som fungerar i registret).
Som nämnts tidigare i denna artikel läser grundläggande registeroperationer (med kodmanipulation) information från registret och skriver information till databasen.
Nästa kodstycke kommer att ändra Windows tapet och inaktivera skärmsläckaren med TRegistry-klassen. Innan vi kan använda TRegistry måste vi lägga till Registry-enheten i användningsklausulen längst upp i källkoden.
~~~~~~~~~~~~~~~~~~~~~~~~~
använder register;
procedur TForm1.FormCreate (avsändare: TObject);
var
reg: TRegistry;
Börja
reg: = TRegistry. Skapa;
med reg börjar
Prova
om OpenKey ('\ Kontrollpanelen \ skrivbord', False) börjar
// ändra tapet och kakel det
reg. WritString ('Bakgrund', 'c: \ windows \ CIRCLES.bmp');
reg. WritString ('TileWallpaper', '1');
// inaktivera skärmsläckare // ('0' = inaktivera, '1' = aktivera)
reg. WritString ('ScreenSaveActive', '0');
// uppdatera omedelbart
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nil, SPIF_SENDWININICHANGE);
slutet
till sist
reg. Fri;
slutet;
slutet;
slutet;
~~~~~~~~~~~~~~~~~~~~~~~~~
De två kodraderna som börjar med SystemParametersInfo... tvinga Windows att omedelbart uppdatera informationen om tapeter och skärmsläckare. När du kör din applikation ser du Windows-bakgrundsbilden bitmapp ändra till Circles.bmp-bilden - det vill säga om du har Circles.bmp-bild i din Windows-katalog. (Obs: din skärmsläckare är nu inaktiverad.)