Arbeiten mit der Windows-Registrierung über Delphi-Anwendungen

Die Registrierung ist einfach eine Datenbank, in der eine Anwendung die Konfiguration speichern und abrufen kann Informationen (Größe und Position des letzten Fensters, Benutzeroptionen und -informationen oder andere Konfigurationen Daten). Die Registrierung enthält auch Informationen zu Windows (95/98 / NT) und zu Ihrer Windows-Konfiguration.

Die Registrierungs- "Datenbank" wird als Binärdatei gespeichert. Führen Sie dazu regedit.exe (Windows-Registrierungseditor-Dienstprogramm) in Ihrem Windows-Verzeichnis aus. Sie werden sehen, dass die Informationen in der Registrierung ähnlich organisiert sind wie Windows Explorer. Wir können regedit.exe verwenden, um Registrierungsinformationen anzuzeigen, zu ändern oder einige Informationen hinzuzufügen. Es ist offensichtlich, dass Änderungen an der Registrierungsdatenbank zu einem Systemabsturz führen können (natürlich, wenn Sie nicht wissen, was Sie tun).

Es ist wahrscheinlich sehr bekannt, dass INI-Dateien in den Tagen von Windows 3.xx eine beliebte Methode zum Speichern von Anwendungsinformationen und anderen vom Benutzer konfigurierbaren Einstellungen waren. Der schrecklichste Aspekt von INI-Dateien ist, dass es sich nur um Textdateien handelt, die der Benutzer leicht bearbeiten (ändern oder sogar löschen) kann. In 32-Bit-Windows empfiehlt Microsoft die Verwendung der Registrierung zum Speichern der Art von Informationen, die Sie normalerweise in INI-Dateien ablegen würden (Benutzer ändern Registrierungseinträge mit geringerer Wahrscheinlichkeit).

instagram viewer

Delphi bietet vollständige Unterstützung für das Ändern von Einträgen in der Windows-Systemregistrierung: über die TRegIniFile-Klasse (dieselbe grundlegende Schnittstelle wie die TIniFile Klasse für Benutzer von INI-Dateien mit Delphi 1.0) und TRegistry-Klasse (Low-Level-Wrapper für die Windows-Registrierung und Funktionen, die für die Registrierung ausgeführt werden).

Wie bereits in diesem Artikel erwähnt, lesen grundlegende Registrierungsvorgänge (mithilfe der Codemanipulation) Informationen aus der Registrierung und schreiben Informationen in die Datenbank.

Der nächste Code ändert das Windows-Hintergrundbild und deaktiviert den Bildschirmschoner mithilfe der TRegistry-Klasse. Bevor wir TRegistry verwenden können, müssen wir der Verwendungsklausel oben im Quellcode eine Registrierungseinheit hinzufügen.

~~~~~~~~~~~~~~~~~~~~~~~~~
verwendet die Registrierung;
procedure TForm1.FormCreate (Sender: TObject);
var
reg: TRegistry;
Start
reg: = TRegistry. Erstellen;
mit reg fange an
Versuchen
Wenn OpenKey ('\ Systemsteuerung \ Desktop', False), beginnen Sie
// Hintergrundbild ändern und kacheln
reg. WriteString ('Hintergrundbild', 'c: \ windows \ CIRCLES.bmp');
reg. WriteString ('TileWallpaper', '1');
// Bildschirmschoner deaktivieren // ('0' = deaktivieren, '1' = aktivieren)
reg. WriteString ('ScreenSaveActive', '0');
// Änderungen sofort aktualisieren
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, nil, SPIF_SENDWININICHANGE);
Ende
schließlich
reg. Kostenlos;
Ende;
Ende;
Ende;
~~~~~~~~~~~~~~~~~~~~~~~~~

Diese beiden Codezeilen, die mit SystemParametersInfo beginnen... Erzwingen Sie, dass Windows das Hintergrundbild und die Bildschirmschonerinformationen sofort aktualisiert. Wenn Sie Ihre Anwendung ausführen, wird das Windows-Hintergrundbild angezeigt Bitmap Wechseln Sie zum Image Circles.bmp, wenn sich in Ihrem Windows-Verzeichnis das Image circle.bmp befindet. (Hinweis: Ihr Bildschirmschoner ist jetzt deaktiviert.)