Arbejde med Windows-registreringsdatabase fra Delphi-applikationer

click fraud protection

Registret er simpelthen en database, som en applikation kan bruge til at gemme og hente konfiguration information (sidste vinduesstørrelse og placering, brugerindstillinger og information eller anden konfiguration data). Registret indeholder også oplysninger om Windows (95/98 / NT) og om din Windows-konfiguration.

Registreringsdatabasen "database" gemmes som en binær fil. For at finde det, skal du køre regedit.exe (Windows-redigeringsredigeringsværktøj) i dit Windows-bibliotek. Du vil se, at oplysninger i registreringsdatabasen er organiseret på en lignende måde Windows Stifinder. Vi kan bruge regedit.exe til at se registeroplysninger, ændre dem eller for at tilføje nogle oplysninger til den. Det er åbenlyst, at ændringer af registreringsdatabase-databasen kan føre til en systemnedbrud (selvfølgelig, hvis du ikke ved, hvad du laver).

Det er sandsynligvis meget velkendt, at INI-filer i dage om dage var en populær måde at lagre applikationsoplysninger og andre brugerkonfigurerbare indstillinger. Det mest skræmmende aspekt af INI-filer er, at det kun er tekstfiler, som brugeren let kan redigere (ændre eller endda slette dem). I 32-bit Windows anbefaler Microsoft at bruge Registrering til at gemme den type information, som du normalt vil placere i INI-filer (brugere har mindre tilbøjelighed til at ændre poster i registreringsdatabasen).

instagram viewer

Delphi giver fuld support til ændring af poster i Windows-systemregistret: via TRegIniFile-klassen (samme grundlæggende interface som TIniFile klasse for brugere af INI-filer med Delphi 1.0) og TRegistry-klasse (indpakning på lavt niveau til Windows-registreringsdatabasen og funktioner, der fungerer på registreringsdatabasen).

Som nævnt før i denne artikel læser grundlæggende registreringsdatabasehandlinger (ved hjælp af kodemanipulation) oplysninger fra registreringsdatabasen og skriver oplysninger til databasen.

Næste kodestykke ændrer Windows-tapetet og deaktiverer pauseskærmen ved hjælp af klassen TRegistry. Inden vi kan bruge TRegistry, skal vi tilføje Registry-enheden til anvendelsesklausulen øverst i kildekoden.

~~~~~~~~~~~~~~~~~~~~~~~~~
bruger registreringsdatabasen;
procedure TForm1.FormCreate (Afsender: TObject);
Var
reg: TRegistry;
begynde
reg: = TRegistry. Skab;
med reg begynder
prøve
hvis OpenKey ('\ Kontrolpanel \ desktop', False) derefter begynder
// skift tapet og fliser det
reg. WritString ('Baggrund', 'c: \ windows \ CIRCLES.bmp');
reg. WritString ('TileWallpaper', '1');
// deaktiver pauseskærm // ('0' = deaktiver, '1' = aktiver)
reg. WritString ('ScreenSaveActive', '0');
// opdaterer øjeblikkeligt ændringer
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nil, SPIF_SENDWININICHANGE);
ende
endelig
reg. Gratis;
ende;
ende;
ende;
~~~~~~~~~~~~~~~~~~~~~~~~~

Disse to kodelinjer, der starter med SystemParametersInfo... tving Windows til straks at opdatere oplysninger om tapet og pauseskærm. Når du kører din applikation, ser du Windows tapet bitmap skift til Circles.bmp-billedet - det vil sige, hvis du har Circles.bmp-billede i dit Windows-bibliotek. (Bemærk: din pauseskærm er nu deaktiveret.)

instagram story viewer