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. |