Een inleiding tot het werken met Windows-register

Het register is gewoon een database die een toepassing kan gebruiken om configuratie-informatie op te slaan en op te halen (laatste venstergrootte en positie, gebruikersopties en informatie of andere configuratiegegevens). Register bevat ook informatie over Windows (95/98 / NT) en over uw Windows-configuratie.

De register "database" wordt opgeslagen als een binair bestand. Voer regedit.exe (hulpprogramma voor het register-editor van Windows) uit in uw Windows-map om het te vinden. U zult zien dat de informatie in het register op dezelfde manier is georganiseerd als Windows Verkenner. We kunnen regedit.exe gebruiken om registerinformatie te bekijken, te wijzigen of om er wat informatie aan toe te voegen. Het is duidelijk dat wijzigingen in de registerdatabase kunnen leiden tot een systeemcrash (natuurlijk als u niet weet wat u doet).

INI versus register

Het is waarschijnlijk heel goed bekend dat INI-bestanden in de dagen van Windows 3.xx een populaire manier waren om toepassingsinformatie en andere door de gebruiker configureerbare instellingen op te slaan. Het meest angstaanjagende aspect van INI-bestanden is dat het slechts tekstbestanden zijn die de gebruiker gemakkelijk kan bewerken (wijzigen of zelfs verwijderen). In 32-bits Windows beveelt Microsoft aan om Registry te gebruiken om het type informatie op te slaan dat u normaal gesproken in INI-bestanden zou plaatsen (gebruikers zullen de registervermeldingen minder snel wijzigen).

Delphi biedt volledige ondersteuning voor het wijzigen van vermeldingen in het Windows-systeemregister: via de TRegIniFile-klasse (dezelfde basisinterface als de TIniFile-klasse voor gebruikers van INI-bestanden met Delphi 1.0) en TRegistry-klasse (laag wrapper voor het Windows-register en functies die werken in het register).

Eenvoudige tip: schrijven naar het register

Zoals eerder in dit artikel vermeld, lezen basisbewerkingen van het register (met behulp van codemanipulatie) informatie uit het register en schrijven informatie naar de database.

Het volgende stukje code zal de Windows-achtergrond veranderen en de schermbeveiliging uitschakelen met de klasse TRegistry. Voordat we TRegistry kunnen gebruiken, moeten we de Registry-eenheid toevoegen aan de use-clausule bovenaan de broncode.

~~~~~~~~~~~~~~~~~~~~~~~~~
gebruikt register;
procedure TForm1.FormCreate (afzender: TObject);
var
reg: TRegistry;
beginnen
reg: = TRegistry.Create;
met reg beginnen
proberen
als OpenKey ('\ Configuratiescherm \ bureaublad', False) begin dan
// verander achtergrond en tegel het
reg.WriteString ('Wallpaper', 'c: \ windows \ CIRCLES.bmp');
reg.WriteString ('TileWallpaper', '1');
// schermbeveiliging uitschakelen // ('0' = uitschakelen, '1' = inschakelen)
reg.WriteString ('ScreenSaveActive', '0');
// update wijzigingen onmiddellijk
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nul, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nihil, SPIF_SENDWININICHANGE);
einde
Tenslotte
reg.Free;
einde;
einde;
einde;
~~~~~~~~~~~~~~~~~~~~~~~~~

Die twee coderegels die beginnen met SystemParametersInfo ... dwingen Windows om de achtergrond- en screensaverinformatie onmiddellijk bij te werken. Wanneer u uw toepassing uitvoert, ziet u de bitmap van de Windows-achtergrond veranderen in de afbeelding Circles.bmp - dat wil zeggen, als u de afbeelding cirkels.bmp in uw Windows-map hebt. (Opmerking: uw schermbeveiliging is nu uitgeschakeld.)