[C#] Bräuchte mal Hilfe

04/16/2011 21:50 21_0x15_025_NAK#1
Sorry für den dummen Titel aber ich wusste nicht was ich als Titel wählen sollte.

Also es geht um folgendes:

Ich habe ein Programm das, wenn es beendet wird noch ein letztes Fenster anzeigt. In diesem Fenster ist eine Checkbox mit "nicht mehr anzeigen". Was ich damit bezwecke sollte wohl klar sein. Ich will das wenn ich das Programm beende und der User die Checkbox gechecked hat, dieses Fenster nächstes mal nicht mehr angezeigt wird.

Ich diesen Sachen habe ich aber keine Ahnung.

Bin für jede Hilfe dankbar.
04/17/2011 02:43 boxxiebabee#2
einstellung in ne datei speichern, und mit einer if abfrage überprüfen ob das fenster angezeigt wird oder nicht.

[Only registered and activated users can see links. Click Here To Register...]
04/17/2011 12:03 21_0x15_025_NAK#3
Naja ich komm nicht wirklich damit zurecht. Solche Sachen habe ich noch nie gemacht. Ich versteh nicht mal wofür Section, Key und Value ist:D.
04/17/2011 12:24 nkkk#4
hmm ich würde keine ini dateien nehmen, das liegt zum einen daran, weil man dan dafür winows api funktionen callen muss (was schleciht ist, da man den code damit von nicht-.net komponenten abhänig macht) , was man eig. nicht ohne gund machen sollte.

Und zum andren weil auf der entsprechenden micriosoft seite explizit der Hinweis gegeben wird das, GetPrivateProfileString noch aus windows 3.1 /9x stammen und man lieber die registry benutzen sollte.
04/17/2011 12:31 boxxiebabee#5
Also, in C# fügst du die Klasse ein, referenzierst es in der Form wo du es brauchst.
Setzt dann den Pfad (path) und schreibst oder liest die .ini Datei.
Section: Übergreifende Kategorie, Absatz
Key: Name des Schlüssels. (Wert)
Value: Wert (yes or no, 1 or 0, etc.)

Beispiel wie die .ini aussieht:
[Optionen]
ShowMessage = 0
AutoReload = yes

dafür wäre folgendes notwendig:
IniWriteValue("Optionen", "ShowMessage", "0");
IniWriteValue("Optionen", "AutoReload", "yes");

zum auslesen folgendes:
string showmessage = IniReadValue("Optionen", "ShowMessage");

die abfrage schaut dann wiefolgt aus:
if(showmessage == "1")
{
messageForm form = new messageForm();
form.DialogShow();
}
else
{
Application.Exit();
}

edit:
Quote:
Originally Posted by nkkk View Post
hmm ich würde keine ini dateien nehmen, das liegt zum einen daran, weil man dan dafür winows api funktionen callen muss (was schleciht ist, da man den code damit von nicht-.net komponenten abhänig macht) , was man eig. nicht ohne gund machen sollte.

Und zum andren weil auf der entsprechenden micriosoft seite explizit der Hinweis gegeben wird das, GetPrivateProfileString noch aus windows 3.1 /9x stammen und man lieber die registry benutzen sollte.
Registry? Naja, wenn der User kein Admin ist gehts nicht.
04/17/2011 13:12 nkkk#6
man kann auch ohne admin rechte in die registry schreiben.

z.B. ein paar der windows standard spiele schreiben den punktestand auch die registry.
04/17/2011 13:37 Gertos#7
Quote:
Originally Posted by nkkk View Post
man kann auch ohne admin rechte in die registry schreiben.
jain.
Man kann ohne Admin Rechte nur in bestimmte Teile der Registy schreiben.
Der HKLM geht nuir mit Admin rechten.
Bereich wie HKCU gehen auch ohne Admin rechte.
---
Zum eigentlichen Topic:

Ich frage mich grade was das für ein Programm ist, das da verändert werden soll. Ich glaube hier gehen alle davon aus, das DU das Programm selber geschrieben hast. In diesem Fall sollte es ein leichtes sein die Box am ende zu verändern. Du brauchst halt nur eine Stelle um die Daten zu speichern. ( Ini-Datei ; Datenbank ; Registy ; ... )
Oder ist das ein fremdes Programm ?

Beschreibe doch bitte noch etwas genauer dein Problem.
04/17/2011 13:51 nkkk#8
wer die information ob der benutzer schon einemal "nicht mehr anzeigen" akiviert hat in HKLM speichern will hat irgendwas nicht verstanden....

aber natürlich hast du recht.
04/17/2011 14:31 21_0x15_025_NAK#9
Also ja das ist mein eigenes Programm. Ich bin ja noch dabei C# zu lernen, aber in den Büchern die ich habe finde ich zu solchen Themen irgendwie nix. Ich habe also keine Ahnung wie man ini-Dateien schreibt und ausliest, geschweigen von der Registry.
04/17/2011 18:29 Gertos#10
Lizzaran hat oben schon ein paar Sachen geposted.
Bei solch einfachen fragen ist es jedoch vermutlich besser wenn du die dir selber googlest.
Zu C# findet man fast alles im Netz.

Oder arbeite mal in diesem Buch:
[Only registered and activated users can see links. Click Here To Register...]
das Kappitel 12 durch. (Lesen und Schreiben von Dateien)
04/18/2011 16:07 21_0x15_025_NAK#11
Vielen Dank, auf die Idee mir ein gutes Openbook anzusehen, bin ich noch gar nicht gekommen.