Jobber med Windows-register fra Delphi-applikasjoner

Registeret er ganske enkelt en database som en applikasjon kan bruke til å lagre og hente konfigurasjon informasjon (siste vindusstørrelse og plassering, brukeralternativer og informasjon eller annen konfigurasjon data). Registeret inneholder også informasjon om Windows (95/98 / NT) og om Windows-konfigurasjonen.

Registerdatabasen er lagret som en binær fil. For å finne det, kjør regedit.exe (Windows-redigeringsverktøy) i Windows-katalogen din. Du vil se at informasjon i registeret er organisert på lignende måte som Windows utforsker. Vi kan bruke regedit.exe for å se registerinformasjon, endre den eller for å legge til litt informasjon i den. Det er åpenbart at endringer av registerdatabasen kan føre til et systemkrasj (selvfølgelig hvis du ikke vet hva du gjør).

Det er sannsynligvis veldig kjent at i dagene med Windows 3.xx INI-filer var en populær måte å lagre applikasjonsinformasjon og andre brukerkonfigurerbare innstillinger. Det mest skremmende aspektet ved INI-filer er at det bare er tekstfiler som brukeren enkelt kan redigere (endre eller til og med slette dem). I 32-biters Windows anbefaler Microsoft å bruke register til å lagre den informasjonstypen du vanligvis vil plassere i INI-filer (brukere har mindre sannsynlighet for å endre registeroppføringer).

instagram viewer

Delphi gir full støtte for å endre oppføringer i Windows System Registry: via TRegIniFile-klassen (samme grunnleggende grensesnitt som TIniFile klasse for brukere av INI-filer med Delphi 1.0) og TRegistry-klasse (innpakning på lavt nivå for Windows-registeret og funksjoner som fungerer på registeret).

Som nevnt tidligere i denne artikkelen, leser grunnleggende registeroperasjoner (ved bruk av kodemanipulering) informasjon fra registeret og skriver informasjon til databasen.

Neste kodestykke vil endre Windows-bakgrunn og deaktivere skjermspareren ved å bruke TRegistry-klassen. Før vi kan bruke TRegistry, må vi legge til Registry-enheten til bruksklausulen øverst i kildekoden.

~~~~~~~~~~~~~~~~~~~~~~~~~
bruker register;
prosedyre TForm1.FormCreate (avsender: TObject);
Var
reg: TRegistry;
begynne
reg: = TRegistry. Skape;
med reg begynner
prøve
Hvis OpenKey ('\ Kontrollpanel \ skrivebord', usann), begynner du
// endre tapet og flislegge det
reg. WritString ('Bakgrunn', 'c: \ windows \ CIRCLES.bmp');
reg. WritString ('TileWallpaper', '1');
// deaktiver skjermsparer // ('0' = deaktivere, '1' = aktivere)
reg. WritString ('ScreenSaveActive', '0');
// oppdater endringer umiddelbart
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nil, SPIF_SENDWININICHANGE);
slutt
endelig
reg. Gratis;
slutt;
slutt;
slutt;
~~~~~~~~~~~~~~~~~~~~~~~~~

De to kodelinjene som begynner med SystemParametersInfo... tving Windows til å oppdatere informasjon om bakgrunnsbilder og skjermsparer umiddelbart. Når du kjører applikasjonen din, vil du se Windows bakgrunn bitmap bytt til Circles.bmp-bildet - det vil si hvis du harirkler.bmp-bilde i Windows-katalogen. (Merk: skjermspareren er nå deaktivert.)

instagram story viewer