Bei Programmstart Begrüssungstext einmalig anzeigen

pipistrello

Mitglied
Hallo liebe Gemeinde, wollte mal fragen ob mir jemand auf die Sprünge helfen kann...
Und zwar geht es darum, das nach dem Start meines Programms ein Begrüssungstext in einer Form angezeigt wird.

Damit dieser Begrüssungstext aber nicht immer wieder von vorne angezeigt wird, soll die Option bestehen, diesen in der angezeigten Form mittels einer Checkbox abzuschalten, sodaß beim nächsten Programmstart dieser nicht mehr angezeigt wird.

Evtl. kann mir jemand ja einen Denkanstoss geben..
 

ComFreek

Mod | @comfreek
Moderator
Du musst irgendwo die Information speichern, dass der Nutzer diese Checkbox aktiviert hat.

Nun, das kann in einer Datei sein (INI-Format, XML-Format, ...) oder auch in der Registry.
Und diesen Wert prüfst du dann bei jedem Programmstart.
 

pipistrello

Mitglied
Hi Comfreek danke für die rasche Antwort. Jo so im nachhinein ist mir auch klar geworden, daß eine Datei angelegt werden muss, wo die Information gespeichert wird, ob die Checkbox aktiviert oder deaktiviert wurde.

Ich weiss zwar noch nicht wie man eine INI.Datei anlegt, aber ich denk mal im Netz wird sich da etwas finden lassen, wie man vorzugehen hat.

Wie ist das denn mit der Stream Klasse, könnte man die denn theoretisch nicht auch in Erwägung ziehen und die Datei mithilfe der StreamKlasse speichern ? Mit der Methode würde ich mich zumindest nicht auf absolutem Neuland befinden...
 

Zvoni

Erfahrenes Mitglied
Ich verstehe nicht, was die Leute gegen die Registry haben.

Meiner Meinung nach gehört sowas nämlich genau dort hin, und zwar unter HKCU, so dass in einer Mehrbenutzerumgebung jeder User für sich die korrekten Einstellungen hat.

Natürlich lässt sich das auch mittels einer INI-Datei lösen, wobei man aber dann daran denken muss, die INI irgendwo im UserProfil zu speichern. Gefahr dabei ist: Der User kann die INI-Datei manuell irgendwo anderst hinspeichern, und schon sind die Einstellungen verbogen.

An die Registry traut sich der gemeine User eben halt nicht ran.

Und das Speichern/Lesen in der Registry sind keine 2-3 Zeilen Code jeweils.

Vorteil Registry: 2-3 Zeilen Code zum lesen jeweils
Nachteil Registry: Beim Programmstart muss geprüft werden, ob die betreffenden Schlüssel überhaupt angelegt sind (was aber mit ner einfachen Fehlerbehandlung abgefangen werden kann)

Vorteil INI-Datei: Prüfung auf existierende Datei bzw. Schlüssel entfällt, da wenn nicht vorhanden automatisch angelegt wird
Nachteil: etwas mehr Code-Zeilen, ist eigentlich ein Überbleibsel aus Win3.1-Zeiten, relativ einfach, die INI-Datei von Hand zu zerstören, der Pfad zur INI muss per Environment-Variable ermittelt werden.

Meine Meinung!
 

sheel

I love Asm
Hi

natürlich kannst du die Streamklassen verwenden.

Eine Ini-Datei ist eine ganz normale Textdatei, nur mit einem bestimmten Aufbau.
zB. sowas:
Code:
[ansicht]
breite=100
hoehe=100

[rest]
zuletzt_geoeffnet=blablub.txt

Bei dir reicht einfach ein
Code:
angezeigt=1
Wenns 0 ist oder die Datei nicht existiert: Anzeigen und Anlegen.

Gruß

@Zvoni:
Vorteil wäre zB., dass man die ini bei Neuaufsetzen einfach mitnehmen kann etc...
Muss beim Starten auch nicht sofort geladen werden: Geschwindigkeit&Speichervorteil...
 

ComFreek

Mod | @comfreek
Moderator
Gefahr dabei ist: Der User kann die INI-Datei manuell irgendwo anderst hinspeichern, und schon sind die Einstellungen verbogen.

An die Registry traut sich der gemeine User eben halt nicht ran.
Wieso sollte der Nutzer seine eigenen Einstellungen löschen?
Egal ob man nun in der Registry oder als Datei Daten speichert, man sollte bitte immer im Uninstaller diese Daten wieder löschen!!

Nachteil Registry: Beim Programmstart muss geprüft werden, ob die betreffenden Schlüssel überhaupt angelegt sind (was aber mit ner einfachen Fehlerbehandlung abgefangen werden kann)
Ich kenne mich mit .NET nicht aus, aber in vielen anderen Frameworks gibt es Funktionen à la getKey(name, defaultVal), welche bei Nichtexistenz defaultVal zurückgeben.
 

pipistrello

Mitglied