Εργασία με το μητρώο των Windows από εφαρμογές Delphi

Το μητρώο είναι απλά μια βάση δεδομένων που μπορεί να χρησιμοποιήσει μια εφαρμογή για να αποθηκεύσει και να ανακτήσει τη διαμόρφωση πληροφορίες (μέγεθος και θέση του τελευταίου παραθύρου, επιλογές χρήστη και πληροφορίες ή οποιαδήποτε άλλη διαμόρφωση δεδομένα). Το μητρώο περιέχει επίσης πληροφορίες για τα Windows (95/98 / NT) και για τη διαμόρφωση των Windows.

Η "βάση δεδομένων" του μητρώου αποθηκεύεται ως δυαδικό αρχείο. Για να το βρείτε, εκτελέστε το αρχείο regedit.exe (βοηθητικό πρόγραμμα επεξεργασίας μητρώου των Windows) στον κατάλογο των Windows. Θα δείτε ότι αυτές οι πληροφορίες στο Μητρώο είναι οργανωμένες με παρόμοιο τρόπο Windows Explorer. Μπορούμε να χρησιμοποιήσουμε το regedit.exe για να δείτε πληροφορίες μητρώου, να το αλλάξετε ή να προσθέσετε κάποιες πληροφορίες σε αυτό. Είναι προφανές ότι οι τροποποιήσεις της βάσης δεδομένων μητρώου θα μπορούσαν να οδηγήσουν σε συντριβή συστήματος (φυσικά αν δεν ξέρετε τι κάνετε).

Ίσως είναι πολύ γνωστό ότι στις ημέρες των Windows 3.xx τα αρχεία INI ήταν ένας δημοφιλής τρόπος αποθήκευσης πληροφοριών εφαρμογής και άλλων ρυθμίσεων που μπορούν να ρυθμιστούν από το χρήστη. Η πιο τρομακτική πτυχή των αρχείων INI είναι ότι είναι απλά αρχεία κειμένου που ο χρήστης μπορεί εύκολα να επεξεργαστεί (αλλάξει ή ακόμα και να τα διαγράψει). Σε 32-bit Windows, η Microsoft συνιστά στη χρήση του μητρώου να αποθηκεύει τον τύπο πληροφοριών που κανονικά τοποθετείτε στα αρχεία INI (οι χρήστες είναι λιγότερο πιθανό να αλλάξουν καταχωρήσεις μητρώου).

instagram viewer

Δελφοί παρέχει πλήρη υποστήριξη για την αλλαγή καταχωρήσεων στο μητρώο συστήματος των Windows: μέσω της κλάσης TRegIniFile (ίδια βασική διεπαφή με την TIniFile class για τους χρήστες αρχείων INI με Delphi 1.0) και την κλάση TRegistry (περιτύλιγμα χαμηλού επιπέδου για το μητρώο των Windows και λειτουργίες που λειτουργούν στο μητρώο).

Όπως αναφέρθηκε προηγουμένως σε αυτό το άρθρο, οι βασικές λειτουργίες μητρώου (χρησιμοποιώντας χειρισμό κώδικα) διαβάζουν πληροφορίες από το μητρώο και γράφουν πληροφορίες στη βάση δεδομένων.

Το επόμενο κομμάτι κώδικα θα αλλάξει την ταπετσαρία των Windows και θα απενεργοποιήσει την προφύλαξη οθόνης χρησιμοποιώντας την κλάση TRegistry. Προτού μπορέσουμε να χρησιμοποιήσουμε το TRegistry, πρέπει να προσθέσουμε τη μονάδα μητρώου στη ρήτρα χρήσεων στην κορυφή του πηγαίου κώδικα.

~~~~~~~~~~~~~~~~~~~~~~~~~
χρησιμοποιεί μητρώο.
διαδικασία TForm1.FormCreate (αποστολέας: TObject);
var
reg: TRegistry;
ξεκινήσει
reg = = TRegistry. Δημιουργώ;
με το reg do begin
δοκιμάστε
αν ξεκινήσει το OpenKey ('\ Control Panel \ desktop', False)
// αλλάξτε ταπετσαρία και πλακώστε το
reg. WriteString ('Ταπετσαρία', 'c: \ windows \ CIRCLES.bmp');
reg. WriteString ('TileWallpaper', '1');
// απενεργοποίηση της προφύλαξης οθόνης // ('0' = απενεργοποίηση, '1' = ενεργοποίηση)
reg. WriteString ('ScreenSaveActive', '0');
// ενημέρωση αλλαγών αμέσως
ΣύστημαParametersInfo (SPI_SETDESKWALLPAPER, 0, μηδέν, SPIF_SENDWININICHANGE);
ΣύστημαParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, μηδέν, SPIF_SENDWININICHANGE);
τέλος
τελικά
reg. Ελεύθερος;
τέλος;
τέλος;
τέλος;
~~~~~~~~~~~~~~~~~~~~~~~~~

Αυτές οι δύο γραμμές κώδικα που αρχίζουν με το SystemParametersInfo... να αναγκάσει τα Windows να ενημερώσουν αμέσως τα στοιχεία ταπετσαρίας και την προφύλαξη οθόνης. Όταν εκτελείτε την εφαρμογή σας, θα δείτε την ταπετσαρία των Windows bitmap μεταβείτε στην εικόνα Circles.bmp - δηλαδή εάν έχετε την εικόνα circles.bmp στον κατάλογο των Windows. (Σημείωση: η προφύλαξη οθόνης είναι πλέον απενεργοποιημένη.)