VB-Homepage Tipp 310

Programmeigenschaften in die Registry schreiben und auslesen

Wenn Sie ein fleißiger Leser der VB-Homepage Tipps sind, so sind Sie auch schon über die Tipps zum Auslesen und Schreiben von Werten in die Registry gestolpert.
Da ich mich bemühe immer allgemeinverständlich zu schreiben und den meisten Tipps ja auch ein Demoprojekt beiliegt, denke ich, man konnte schon etwas damit anfangen und ggf. seinen eigenen Anforderungen anpassen.
Aber ich bin weit davon entfernt zu schreiben, der Umgang mit der Registry ist ein leichtes Spiel.

Zumindestens bis jetzt, denn ich habe hier wirklich etwas tolles für alle, die diese Möglichkeit noch nicht kennen.

Denn VB hat selber Möglichkeiten, Werte aus der Registry zu lesen und zu setzen und erspart Ihnen so die mühevolle Handarbeit über die API Funktionen.
So gibt es einen eigenen Registry Zweig für VB und VBA Programme unter

HKEY_CURRENT_USER\Software\VB and VBA Program Settings

und dort können Sie für Ihr Programm sehr einfach eigene Einträge definieren, dabei wird der gesamte Pfad bis zu den Angaben für Ihr Programm auch erstellt, wenn er noch nicht vorhanden ist und Sie brauchen sich nicht selbst darum zu kümmern.
Lobenswert auch den Eintrag unter HKEY_CURRENT_USER anzulegen, so haben auch mehrere User an der selben Maschine ihre eigenen Einstellungen.

Wie aber geht das Setzen von Werten nun von statten?

Nehmen wir als Beispiel, daß Ablegen der Programmkoordinaten zum Programmende und das Einlesen und Setzen der Koordinaten zum Programmstart.

Setzen der Werte (Form_Unload)
SaveSetting "VB-Homepage", "KOORDINATEN", "LEFT", Form1.Left
SaveSetting "VB-Homepage", "KOORDINATEN", "TOP", Form1.Top
SaveSetting "VB-Homepage", "KOORDINATEN", "WIDTH", Form1.Width
SaveSetting "VB-Homepage", "KOORDINATEN", "HEIGHT", Form1.Height

SaveSetting = Anweisung zum setzen des Wertes
"VB-Homepage" = der Name Ihres Programms
"Koordinaten" = der Name eines Unterordners
"Left / Top / Width / Height" = die Schlüssel
Form1.Left .... = Direkte Übergabe der Formkoordinaten, also der Wert

Auslesen der Werte (Form_Load)
Form1.Left = GetSetting("VB-Homepage", "KOORDINATEN", "LEFT", Form1.Left)
Form1.Top = GetSetting("VB-Homepage", "KOORDINATEN", "TOP", Form1.Top)
Form1.Width = GetSetting("VB-Homepage", "KOORDINATEN", "WIDTH", Form1.Width)
Form1.Height = GetSetting("VB-Homepage", "KOORDINATEN", "HEIGHT", Form1.Height)

Form1.Left = direkte Übergabe der Koordinaten an die Form
GetSetting = Anweisung zum auslesen des Wertes
"VB-Homepage" = der Name Ihres Programms
"Koordinaten" = der Name eines Unterordners
"Left / Top / Width / Height" = die Schlüssel
Form1.Left = Defaultwert, falls noch nicht vorhanden

Zur besseren Veranschaulichung hier der Registry-Zweig nach unseren Angaben.
HKEY_CURRENT_USER
   |- SOFTWARE
          |- VB and VBA Program Settings
                 |- VB-Homepage
                         |- KOORDINATEN
                                 |- LEFT
                                 |- TOP
                                 |- WIDTH
                                 |- HEIGHT

Sie müssen sich dabei keinerlei Gedanken um das vorhanden sein des Registryzweigs oder der Schlüssel machen, wenn er nicht vorhanden ist,
wird er einfach angelegt. Sie können, wie hier mit dem Unterordner Koordinaten auch mit mehreren Unterordnern arbeiten.

Und auch as Löschen eines Schlüssels

DeleteSetting "VB-Homepage", "KOORDINATEN", "LEFT"

oder eines gesamten Ordners

DeleteSetting "VB-Homepage", "KOORDINATEN"

sind möglich.

Ich denke mal, eine feine Sache.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite