Delo z registrom Windows od aplikacij Delphi

Register je preprosto baza podatkov, ki jo aplikacija lahko uporablja za shranjevanje in pridobivanje konfiguracije informacije (velikost in položaj zadnjega okna, uporabniške možnosti in informacije ali katera koli druga konfiguracija podatkov). Register vsebuje tudi informacije o sistemu Windows (95/98 / NT) in o konfiguraciji sistema Windows.

"Baza podatkov" registra je shranjena kot binarna datoteka. Če ga želite najti, v imeniku Windows zaženite regedit.exe (pripomoček urejevalnika registra Windows). Videli boste, da so podatki v Registru organizirani na podoben način Windows Explorer. Regedit.exe lahko uporabimo za ogled podatkov v registru, jih spremenimo ali dodamo nekaj informacij. Očitno je, da bi lahko spremembe baze registrov povzročile sistemsko zrušitev (seveda če ne veste, kaj počnete).

Verjetno je zelo dobro znano, da so bile v dneh Windows 3.xx datoteke INI priljubljen način shranjevanja informacij o aplikacijah in drugih nastavitev, ki jih je mogoče prilagoditi uporabnikom. Najbolj grozljiv vidik datotek INI je, da so le besedilne datoteke, ki jih lahko uporabnik enostavno ureja (spremeni ali celo izbriše). V 32-bitnem sistemu Windows Microsoft priporoča uporabo Registry za shranjevanje vrste informacij, ki jih običajno vstavite v datoteke INI (manj verjetno je, da uporabniki spremenijo vnose v registre).

instagram viewer

Delphi nudi popolno podporo za spreminjanje vnosov v sistemskem registru Windows: prek razreda TRegIniFile (isti osnovni vmesnik kot TIniFile razred za uporabnike datotek INI z Delphi 1.0) in razred TRegistry (ovoj za nizko raven za sistem Windows in funkcije, ki delujejo v registru).

Kot smo že omenili v tem članku, osnovne operacije registra (z uporabo manipulacije s kodo) berejo informacije iz registra in zapisujejo podatke v bazo.

Naslednji del kode bo spremenil ozadje sistema Windows in onemogočil ohranjevalnik zaslona z razredom TRegistry. Preden lahko uporabimo TRegistry, moramo enoti registra dodati klavzulo o uporabi na vrhu izvorne kode.

~~~~~~~~~~~~~~~~~~~~~~~~~
uporablja register;
postopek TForm1.FormCreate (Pošiljatelj: TObject);
var
reg: TRegistry;
začeti
reg: = TRegistry. Ustvari;
z reg se začnejo
poskusi
če se OpenKey ('\ Nadzorna plošča \ namizje', napačno) nato začne
// spremenite ozadje in ga ploščice
reg. WriteString ('Ozadje', 'c: \ windows \ CIRCLES.bmp');
reg. WriteString ('TileWallpaper', '1');
// onemogoči ohranjevalnik zaslona // ('0' = onemogoči, '1' = omogoči)
reg. WriteString ('ScreenSaveActive', '0');
// posodobite spremembe takoj
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nič, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nič, SPIF_SENDWININICHANGE);
konec
končno
reg. Prost;
konec;
konec;
konec;
~~~~~~~~~~~~~~~~~~~~~~~~~

Ti dve vrstici kode, ki se začneta s SystemParametersInfo... prisilite Windows, naj takoj posodobi podatke o ozadju in ohranjevalniku zaslona. Ko zaženete aplikacijo, boste videli ozadje sistema Windows bitna karta spremenite v sliko Circles.bmp - to je, če v imeniku sistema Windows imate sliko circle.bmp. (Opomba: ohranjevalnik zaslona je zdaj onemogočen.)

instagram story viewer