Työskentely Delphi-sovellusten Windows-rekisterin kanssa

Rekisteri on yksinkertaisesti tietokanta, jota sovellus voi käyttää määritysten tallentamiseen ja hakemiseen tiedot (viimeisen ikkunan koko ja sijainti, käyttäjän asetukset ja tiedot tai muut konfiguraatiot) data). Rekisteri sisältää myös tietoja Windowsista (95/98 / NT) ja Windows-kokoonpanosta.

Rekisterin "tietokanta" tallennetaan binaaritiedostona. Löydä se suorittamalla regedit.exe (Windows-rekisterieditorin apuohjelma) Windows-hakemistossa. Näet, että rekisterissä olevat tiedot on järjestetty samalla tavalla kuin Windowsin Resurssienhallinta. Voimme käyttää regedit.exe-tiedostoa tarkastellaksesi rekisteritietoja, muuttaa niitä tai lisätä siihen joitain tietoja. On selvää, että rekisteritietokannan muutokset voivat johtaa järjestelmän kaatumiseen (tietysti, jos et tiedä mitä teet).

On todennäköisesti hyvin tunnettua, että Windows 3.xx -aikana INI-tiedostot olivat suosittu tapa tallentaa sovellustietoja ja muita käyttäjän määrittämiä asetuksia. INI-tiedostojen pelottavaisin ominaisuus on, että ne ovat vain tekstitiedostoja, joita käyttäjä voi helposti muokata (muuttaa tai jopa poistaa). 32-bittisessä Windows-käyttöjärjestelmässä Microsoft suosittelee rekisterin käyttöä tietojen tyypin tallentamiseksi, jotka yleensä sijoitat INI-tiedostoihin (käyttäjät eivät todennäköisesti muuta rekisterimerkintöjä).

instagram viewer

Delfoi tarjoaa täyden tuen Windows - rekisteritietojen muuttamiseen: TRegIniFile - luokan kautta (sama perusrajapinta kuin TIniFile luokka INI-tiedostojen käyttäjille, joilla on Delphi 1.0) ja TRegistry-luokka (matalan tason kääre Windows-rekisterille ja rekisterissä toimiville toiminnoille).

Kuten aiemmin tässä artikkelissa mainittiin, perusrekisteritoiminnot (käyttävät koodin käsittelyä) ovat tietojen lukemista rekisteristä ja tietojen kirjoittamista tietokantaan.

Seuraava koodipala muuttaa Windows-taustakuvan ja poistaa näytönsäästäjän käytöstä TRegistry-luokan avulla. Ennen kuin voimme käyttää TRegistryä, meidän on lisättävä rekisteriyksikkö käyttölausekkeeseen lähdekoodin yläosassa.

~~~~~~~~~~~~~~~~~~~~~~~~~
käyttää rekisteriä;
menettely TForm1.FormCreate (Lähettäjä: TObject);
var
reg: lakiasiainministeriö;
alkaa
reg: = TRegistry. Luoda;
reg kanssa alkavat
yrittää
jos OpenKey ('\ Ohjauspaneeli \ työpöytä', Väärä), aloita sitten
// vaihda taustakuva ja tiivistä se
reg. WriteString ('Taustakuva', 'c: \ Windows \ CIRCLES.bmp');
reg. WriteString ('TileWallpaper', '1');
// poista näytönsäästäjä käytöstä // ('0' = poista käytöstä, '1' = ota käyttöön)
reg. WriteString ('ScreenSaveActive', '0');
// päivitä muutokset välittömästi
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nolla, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nolla, SPIF_SENDWININICHANGE);
pää
vihdoin
reg. Vapaa;
end;
end;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~

Ne kaksi koodiriviä, jotka alkavat SystemParametersInfo... pakota Windows päivittämään taustakuvan ja näytönsäästäjän tiedot välittömästi. Kun suoritat sovelluksen, näet Windows-taustakuvan bittikartta vaihda Circles.bmp-kuvaan - ts. jos Windows-hakemistossasi on circles.bmp-kuva. (Huomaa: näytönsäästäjä on nyt poistettu käytöstä.)

instagram story viewer