Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Registry vs. AppData

Registry vs. AppData
20.11.2022 09:44:12
Andreas
Guten Morgen,
ich möchte bestimme Anwendereinstellung speichern. Beispiel: Ich habe ein eigenes Menüband (Ribbon) erstellt. Hierin befindet sich ein ToggleButton, mit dem der Anwender ein bestimmtes Verhalten ein- oder ausschalten kann. Der Zustand des ToggleButton soll gespeichert werde, damit der Anwender beim nächsten Start von Excel den gleichen Zustand wiederbekommt.
Bislang mache ich das über die Registry im Pfad
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
Alternativ könnte man das doch aber bestimmt auch über den Ordner AppData\Local und eine XML-Datei oder so machen.
Wo sind hier die Unterschiede. Wann nimmt man das eine, wann das andere ? - kann mir jemand einen Tipp geben, welche Vor-/Nachteile bei der einen oder anderen Lösung zu erwarten sind.
Vielen Dank - und schönen Sonntag.
A.

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Registry vs. AppData
20.11.2022 10:19:27
Oberschlumpf
nimm doch einfach eine Zelle in einer versteckten Tabelle, die der Anwender nie zu sehen bekommt - oder was spricht dagegen?
AW: Registry vs. AppData
20.11.2022 10:33:06
Andreas
Dagegen spricht, dass ich ein Add-Ins habe, und keine vorgefertigte Excel-Datei mit Tabellenblättern.
Außerdem würde mich das grundsätzlich interessieren.
AW: Registry vs. AppData
20.11.2022 10:35:05
Oberschlumpf
und mich würde eine Antwort von dir in deinem anderen Beitrag (Hlp-File) interessieren, magst du da bitte noch antworten?
erledigt - danke! owT
20.11.2022 10:35:52
Oberschlumpf
AW: Registry vs. AppData
20.11.2022 10:35:53
Andreas
habe ich doch ...
AW: Registry vs. AppData
20.11.2022 10:36:19
Oberschlumpf
sorry, hab ich zu spät gesehen...*schäm*
noch offen...
20.11.2022 10:44:52
Oberschlumpf
...nur n Hinweis für andere Antworter
AW: Registry vs. AppData
20.11.2022 11:32:52
Herbert_Grom
Hallo A.
probiers doch mal mit den "CustomDocumentProperties"!
Servus
Anzeige
AW: Registry vs. AppData
20.11.2022 11:58:50
mumpel
Hallo!
1. Besser als der Programm-Pfad wäre der persönliche Ordner "Dokumente".
2. XML ist zu komplex. Besser mit INI-Dateien arbeiten.
3. Die Registrierungsdatenbank hat den Vorteil, dass sie bei allen gleich ist. Nur auf Firmenrechnern kann es sein, dass Du dort nicht in die Registrierungsdatenbank schreiben kannst.
Gruß, René
AW: Registry vs. AppData
22.11.2022 15:39:42
Andreas
Hallo Rene,
vielen Dank für deine Anregungen.
Sind INI-Dateien nicht inzwischen aus der Zeit gefallen ?
Mit geht es nicht nur im die technische Lösung (ich habe ja eine Lösung, die soweit erstmal funktioniert), sondern auch und das professionelle Auftreten nach außen.
Was ist da state of the art ?
Das mit der Registry verstehe ich. Das ist auch im übrigen genau mein Punkt. Wo schreibe ich am sinnvollsten, bzw. wo ist zu erwarten, dass ich IMMER auch Rechte habe.
Vielleicht hast du dazu eine Meinung ?
vG.
Anzeige
AW: Registry vs. AppData
22.11.2022 18:23:41
mumpel
Nein, INI nutze ich heute noch in Word in Verbindung mit RibbonX.
AW: Registry vs. AppData
20.11.2022 21:05:01
volti
Hallo Andreas,
neben den Registry-Einträgen z.B. über VBA-Setting nutze ich immer gerne noch die "alten" Inidateien. Mit zwei API-Funktionen kannst Du die ganz leicht ein- oder auslesen.
Dazu habe ich mir auch mal eine Lese/Schreibfunktion gebaut.
Code:


Private Declare PtrSafe Function GetPrivateProfileStringA Lib "kernel32" ( _ ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _ ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare PtrSafe Function WritePrivateProfileStringA Lib "kernel32" ( _ ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _ ByVal lpFileName As String) As Long Function SetGetInidaten(sBereich As String, sItem As String, Optional sDaten As String) As String 'Schreibt Daten in die Textdatei oder liest Daten aus der Textdatei Dim sPfad As String, sTxt As String * 5000, l As Integer sPfad = Environ$("TEMP") & "&bsol;MyIni.txt" If sDaten <> "" Then WritePrivateProfileStringA sBereich, sItem, sDaten, sPfad Else l = GetPrivateProfileStringA(sBereich, sItem, "none", sTxt, 5000, sPfad) SetGetInidaten = Left$(sTxt, l) End If End Function Sub Schreibewas1() SetGetInidaten "Sektor1", "MeinWert", "Hallo World!" End Sub Sub Lesewas1() MsgBox SetGetInidaten("Sektor1", "MeinWert") End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Registry vs. AppData
22.11.2022 15:32:05
Andreas
Hallo Karl-Heinz,
vielen Dank für deinen Tipp und dein Snippet.
Sind INI-Dateien nicht inzwischen aus der Zeit gefallen ?
Mit geht es nicht nur um die technische Lösung (ich habe ja eine Lösung, die soweit erstmal funktioniert), sondern auch und das professionelle Auftreten nach außen.
Vielleicht hast du dazu eine Meinung ?
vG.
AW: Registry vs. AppData
22.11.2022 15:54:36
volti
Hallo Andreas,
die Speicherung in der Registry nutze ich oft und ist praktisch.
Aber wenn ich nur ein paar Einstellungen speichern und flugs wieder auslesen möchte, die nicht geheim sind und auch mit Texteditor leicht zu ändern sind, warum kann ich die nicht einfach in einer simplen Textdatei (Suffix ist ja auch wurscht, im übersichtlichen Klartext speichern. Ich speichere da auch längere Texte, CrLf ggf durch anderen Platzhalter ersetzen und dann klappt das unter Verwendung der beiden APIs hervorragend. Kann auch leicht kopiert werden.
Wozu brauche ich da eine XML-Datei mit ihren ganzem Tag-Gedöns, nur weil die Ini-Methode alt ist.
Aber gut, das ist halt Ansichtssache.
Gruß KH
Anzeige
AW: Registry vs. AppData
22.11.2022 15:58:43
Andreas
Da gebe ich dir absolut recht...
Mir geht es nicht um das speichern von Daten, sondern um Programmeinstellungen meines AddIns, die den Anwender a) nicht unbedingt sehen oder finden muss und b) in der Regel auch gar nicht interessieren.
Aber danke für deine Meinung
vG
AW: Registry vs. AppData
21.11.2022 14:06:59
Der
Hallo,
ob Du das ganze in der Registry, per Datei in einem Ordner, auf einem Tabellenblatt oder in den CustomDocumentProperties oder wo auch immer machst ist im Grunde egal.
Man muss sich natürlich grundlegende Fragen stellen. Die wichtigste Frage ist meines Erachtens ob alle Nutzer die gleichen Einstellungen verwenden oder ob jeder Nutzer individuelle Einstellungen bekommen soll. Vielleicht wäre es auch interessant, ob und wie die Einstellungen gesichert werden sollen, z. B. wenn der Rechner/Server getauscht wird. Da muss man halt entscheiden, ob man die AddIns im User-Verzeichnis, die Registry oder die Einstellungsdatei sichert und auf den neuen Rechner/Server kopiert. Bei den letzten beiden varianten kann man dann das AddIn einfach aus dem original wieder installieren.
Übrigens kann man auch in einer Addin-Datei Werte in Tabellenblätter schreiben und auslesen (oder CustomDocumentProperties). Da AddIn-Dateien idR in einen Benutzerorder kopiert werden, sind diese Einstellungen dann Nutzerbezogen.
Bei den Einstellungsdateien (ob ini, xml oder was auch immer ...) muss man halt den entsprechenden Ordner wählen, in den man die Datei ablegt, um es benutzerbezogen oder für alle gleich möchte.
Alle Möglichkeiten sind also grundsätzlich geeignet.
Gruß
Michael
Anzeige
AW: Registry vs. AppData
22.11.2022 15:36:22
Andreas
Hallo Michael,
vielen Dank für deine Anregungen ...
Ich teile nicht die Meinung, dass AddIns benutzerbezogen gespeichert werden. Für mein Dafürhalten erweitern AddIns den Funktionsumfang von Excel und dass kann dann (meiner Meinung nach sogar i.d.R.) global erfolgen. Also AddIns ins Library-Verzeichnis.
vG.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige