Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Wenn man es gewohnt ist, mit Access zu arbeiten, liegt es nahe, Anwendungsdaten wie Optionen et cetera in einer Tabelle der Datenbankdatei zu speichern. Unter Excel, Word, Outlook oder auch für twinBASIC-Anwendungen ist das nicht so einfach. Wir könnten zwar eine Datenbank zu diesem Zweck heranziehen, aber je nach Anwendungsfall gibt es praktischere Lösungen – zum Beispiel Textdateien, XML-Dateien oder auch die Registry. Letztere schauen wir uns in diesem Artikel an. Wie können wir dort Einstellungen sichern und wieder abrufen? Wo in der Registry landen diese dann? Können wir überhaupt per VB, VBA und twinBASIC darauf zugreifen? All dies klären wir auf den folgenden Seiten.
Anwendungsdaten verwalten
Wie schon in der Einleitung geschrieben, gibt es viele Orte, an denen man Anwendungsdaten speichern kann. In einer Access-Datenbank würde man direkt eine Tabelle der verwendeten Datenbank nutzen und in allen Anwendungen wäre es möglich, mit wenigen Zeilen Code Daten in Text- oder XML-Dateien zu schreiben und diese auszulesen. Eine weitere Option ist die Registry.
Welche der Optionen man nutzt, hängt von der Art der zu speichernden Daten ab. Wir gehen in diesem Artikel davon aus, dass es sich nur um einige wenige Optionen handelt, die gespeichert werden sollen.
Anwendungsdaten in der Registry
Es gibt einige API-Funktionen, mit denen man an beliebige Stellen der Registry schreiben kann. Je nachdem, wohin man schreiben möchte, benötigt man aber auch wieder Administrator-Rechte.
Grundsätzlich ist es auch keine besonders gute Idee, die Registry an nicht dafür vorgesehenen Stellen zu verändern – selbst wenn man nur ein paar Datensätze hinzufügt.
Neben diesen API-Funktionen gibt es aber auch noch spezielle VBA-Funktionen, mit denen wir bestimmte Bereiche der Registry für uns nutzen können. Dazu brauchen wir keine Admin-Rechte, denn diese Einträge liegen innerhalb des Bereichs des jeweiligen Benutzers.
Registry-Funktionen der Interaction-Klasse
Wenn wir im Objektkatalog nach Befehlen suchen, die einen Text wie Registry enthalten, suchen wir vergeblich.
Mit ein wenig Forschergeist finden wir jedoch schnell die Interaction-Klasse und darin die Elemente aus Bild 1.
Bild 1: Elemente der Interaction-Klasse
Hier sehen wir die folgenden Funktionen:
- DeleteSetting: Löscht die mit den Parametern angegebene Einstellung.
- GetAllSettings: Liefert alle Einstellungen des mit den Parametern angegebenen Bereichs.
- GetSetting: Liefert die mit den Parametern angegebene Einstellung.
- SaveSetting: Speichert eine Einstellung in dem mit den Parametern angegebenen Bereich.
Die vier Funktionen verwenden alle ähnliche Parameter:
- AppName: Name der Anwendung, unter welcher die Einstellung gespeichert werden soll
- Section: Name des Bereichs unterhalb der Anwendung
- Key: Name des Schlüssels, also der Option
- Setting: Wert der Option
Wo werden die Werte in der Registry gespeichert?
Das könnten wir vermutlich leicht über das Internet erfahren, aber manchmal macht ein wenig Suche von Hand Spaß. Dazu legen wir überhaupt erst einmal einen Eintrag an und nutzen dazu den Befehl SaveSetting. Diesen rufen wir über das Direktfenster des VBA-Editors wie folgt auf und verwenden Werte für die Parameter, die den Parameternamen selbst entsprechen:
SaveSetting "AppName", "Section", "Key", "Setting"
Hier kann eigentlich kein Fehler passieren – selbst wenn die Einstellung bereits vorhanden ist, wird diese mit dem neuen Wert im vierten Parameter überschrieben.
Danach öffnen wir die Registry mit dem Befehl Registrierungs-Editor, den wir in das Suchen-Feld von Windows eingeben.
Hier wählen wir den Menübefehl Bearbeiten|Suchen aus und geben dort den Wert AppName ein.