Töötamine Windowsi registriga Delphi rakendustest

Register on lihtsalt andmebaas, mida rakendus saab kasutada konfiguratsiooni salvestamiseks ja hankimiseks teave (viimase akna suurus ja asukoht, kasutaja valikud ja teave või mis tahes muu konfiguratsioon andmed). Register sisaldab ka teavet Windowsi (95/98 / NT) ja teie Windowsi konfiguratsiooni kohta.

Registri "andmebaasi" hoitakse binaarfailina. Selle leidmiseks käivitage oma Windowsi kataloogis regedit.exe (Windowsi registriredaktori utiliit). Näete, et registris olev teave on korraldatud sarnaselt teabele Windows Explorer. Registriteabe kuvamiseks, muutmiseks või sellele teabe lisamiseks saame kasutada faili regedit.exe. On ilmne, et registriandmebaasi muutmine võib põhjustada süsteemi krahhi (muidugi kui te ei tea, mida teete).

Tõenäoliselt on väga hästi teada, et Windows 3.xx päevil olid INI-failid populaarseks viisiks rakendusteabe ja muude kasutaja konfigureeritavate sätete talletamiseks. INI-failide kõige hirmutavam aspekt on see, et need on lihtsalt tekstifailid, mida kasutaja saab hõlpsalt redigeerida (neid muuta või isegi kustutada). 32-bitises Windowsis soovitab Microsoft kasutada registrit, et salvestada sellist tüüpi teave, mille tavaliselt sisestate INI-failidesse (kasutajad muudavad registrikirjeid väiksema tõenäosusega).

instagram viewer

Delphi pakub täielikku tuge Windowsi süsteemiregistri kirjete muutmiseks: klassi TRegIniFile kaudu (sama põhiliides nagu ka TIniFile klass INI-failide kasutajatele koos Delphi 1.0-ga) ja TRegistry-klass (madala taseme ümbris Windowsi registri jaoks ja registris töötavad funktsioonid).

Nagu selles artiklis varem mainitud, on põhilisteks registritoiminguteks (koodiga manipuleerimine) registrist teabe lugemine ja andmebaasi teabe kirjutamine.

Järgmine kooditükk muudab Windowsi taustapildi ja keelab ekraanisäästja TRegistry klassi abil. Enne TRegistry kasutamist peame lisama lähtekoodi ülaosas olevale kasutusklauslile registriüksuse.

~~~~~~~~~~~~~~~~~~~~~~~~~
kasutab registrit;
protseduur TForm1.FormCreate (saatja: TObject);
var
reg: TRegistry;
alustada
reg: = seadusandlus. Loo;
reg-iga alustatakse
proovida
kui OpenKey ('\ Control Panel \ desktop', False), siis alustage
// vaheta tapeet ja pane see paaniks
reg. WriteString ('Taustapilt', 'c: \ windows \ CIRCLES.bmp');
reg. WriteString ('TileWallpaper', '1');
// keela ekraanisäästja // ('0' = keela, '1' = luba)
reg. WriteString ('ScreenSaveActive', '0');
// värskenda muudatusi kohe
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, null, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, null, SPIF_SENDWININICHANGE);
lõpp
lõpuks
reg. Tasuta;
lõpp;
lõpp;
lõpp;
~~~~~~~~~~~~~~~~~~~~~~~~~

Need kaks koodirida, mis algavad süsteemiga SystemParametersInfo... sundige Windowsi viivitamatult värskendama tapeedi ja ekraanisäästja teavet. Rakenduse käivitamisel näete Windowsi taustapilti bitmap muutke pilti Circles.bmp - see tähendab, et kui teie Windowsi kataloogis on pilt circles.bmp. (Märkus: ekraanisäästja on nüüd keelatud.)