Darbs ar Windows reģistru no Delphi lietojumprogrammām

Reģistrs ir vienkārši datu bāze, kuru lietojumprogramma var izmantot, lai saglabātu un izgūtu konfigurāciju informācija (pēdējā loga izmērs un novietojums, lietotāja iespējas un informācija vai jebkura cita konfigurācija) dati). Reģistrā ir arī informācija par Windows (95/98 / NT) un par jūsu Windows konfigurāciju.

Reģistra "datu bāze" tiek saglabāta kā binārs fails. Lai to atrastu, savā Windows direktorijā palaidiet regedit.exe (Windows reģistra redaktora utilīta). Jūs redzēsit, ka informācija reģistrā ir sakārtota līdzīgi kā Windows Explorer. Mēs varam izmantot regedit.exe, lai skatītu reģistra informāciju, mainītu to vai pievienotu tai kādu informāciju. Ir acīmredzams, ka reģistra datu bāzes modifikācijas var izraisīt sistēmas avāriju (protams, ja nezināt, ko darāt).

Droši vien ir ļoti labi zināms, ka Windows 3.xx laikos INI faili bija populārs veids, kā glabāt lietojumprogrammu informāciju un citus lietotāja konfigurējamus iestatījumus. Pats drausmīgākais INI failu aspekts ir tas, ka tie ir tikai teksta faili, kurus lietotājs var viegli rediģēt (mainīt vai pat izdzēst). 32 bitu Windows operētājsistēmā Microsoft iesaka izmantot reģistru, lai saglabātu informācijas tipu, kuru parasti ievietosit INI failos (lietotājiem ir mazāka iespēja mainīt reģistra ierakstus).

instagram viewer

Delfi nodrošina pilnīgu atbalstu ierakstu mainīšanai Windows sistēmas reģistrā: izmantojot TRegIniFile klasi (tāds pats pamata interfeiss kā TIniFile klase INI failu lietotājiem ar Delphi 1.0) un TRegistry klase (zema līmeņa iesaiņojums Windows reģistram un funkcijām, kas darbojas reģistrā).

Kā minēts iepriekš šajā rakstā, pamata reģistra darbības (izmantojot manipulācijas ar kodu) ir informācijas nolasīšana no reģistra un informācijas ierakstīšana datu bāzē.

Nākamais koda gabals mainīs Windows fonu un atspējos ekrānsaudzētāju, izmantojot TRegistry klasi. Pirms mēs varam izmantot TRegistry, mums ir jāpievieno reģistra vienība izmantošanas klauzulai avota koda augšdaļā.

~~~~~~~~~~~~~~~~~~~~~~~~~
izmanto reģistru;
procedūra TForm1.FormCreate (Sūtītājs: TObject);
var
reg.: TRegistry;
sākt
reg: = TRegistry. Izveidot;
ar reg do sākas
mēģiniet
ja OpenKey ('\ Control Panel \ desktop', False), tad sāciet
// nomainiet fonu un flīzējiet to
reģ. WriteString ('Tapetes', 'c: \ windows \ CIRCLES.bmp');
reģ. WriteString ('TileWallpaper', '1');
// atspējot ekrānsaudzētāju // ('0' = atspējot, '1' = iespējot)
reģ. WriteString ('ScreenSaveActive', '0');
// nekavējoties atjauniniet izmaiņas
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nulle, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nulle, SPIF_SENDWININICHANGE);
beigas
beidzot
reģ. Bezmaksas;
beigas;
beigas;
beigas;
~~~~~~~~~~~~~~~~~~~~~~~~~

Šīs divas koda līnijas, kas sākas ar SystemParametersInfo... piespiest Windows nekavējoties atjaunināt tapetes un ekrānsaudzētāja informāciju. Palaižot programmu, jūs redzēsit Windows fonu bitkarte mainiet uz Circles.bmp attēlu - tas ir, ja jūsu Windows direktorijā ir attēls circles.bmp. (Piezīme: ekrānsaudzētājs tagad ir atspējots.)

instagram story viewer