Laden...

Win CE: Neue Registry Einträge speichern, aber wie?

Erstellt von macke_a vor 14 Jahren Letzter Beitrag vor 14 Jahren 3.902 Views
M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 14 Jahren
Win CE: Neue Registry Einträge speichern, aber wie?

Moin !

Mit dem folgenden Sourccode kann ich auf meinem embedded CE Rechner die folgenden Registry Einträge erstellen.

RegistryKey regkey = Registry.LocalMachine.CreateSubKey("Drivers\\Display"); 
regkey.SetValue("mykey", (string)"22");
regkey.SetValue("my2nd", (string)"33", RegistryValueKind.DWord);

Um die Einträge dauerhaft, nach dem ich den CE Rechner spannungslos geschaltet habe, zu sichern benötige ich einen entsprechenden Aufruf z.B. wie "regkey.save".

Leider habe ich noch keinen solchen Aufruf gefunden! Hat jemand von Euch eine Lösung wie ich die Einträge speichern kann?

Danke für Eure Antworten!

Gruss macke_a

4.939 Beiträge seit 2008
vor 14 Jahren

Es fehlt noch der Close-Aufruf bzw. einfacher ist es mit Hilfe des using-Schlüsselworts:


using(RegistryKey regkey = ...)
{
   regkey.SetValue(...);
}

Der implizite Aufruf von Dispose() ruft intern dann Close() auf.

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 14 Jahren

Danke für den netten Hinweis!
Nur wie ich die Einträge dauerhaft speichern kann, ist mir immer noch nicht bewusst...

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo macke_a,

SetValue speichert die Werte in der Registry ... spätestens nach dem Close.

herbivore

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 14 Jahren

Nee...das ist nicht korrekt!

using (RegistryKey regkey = Registry.LocalMachine.CreateSubKey("Drivers\\Display"))
{
   regkey.SetValue("mykey", (string)"22");
   regkey.SetValue("my2nd", (string)"33", RegistryValueKind.DWord);
   regkey.Close();
}

Die Einträge werden erstellt, sind aber nach einem Neustart (Reset) des embedded Rechners wieder verschwunden bzw. gelöscht!

Was gibt es noch für Vorschläge? Wäre dankbar 😃

S
8.746 Beiträge seit 2005
vor 14 Jahren

Ganz normales Verhalten. Windows CE bootet aus dem ROM.

Je nach Plattform können allerdings Teile des Systems - auch die Registry - im Flash-Speicher gesichert werden. Das muss die Applikation dann auch gezielt steuern (also dein Save()).

Ob das überhaupt geht, bestimmt aber einzig und allein der Hersteller. Fast alle mir bekannten Platformen (Smartphones, etc.) gehen aber bei Spannungsverlust in den Fabrik-Ausliferungszustand zurück. Erst mit den neuen Windows Mobile 6 - Geräten scheint sich das langsam zu ändern.

Die Antwort auf deine Frage ist also mit hoher Wahrscheinlichkeit: Geht nicht.

http://geekswithblogs.net/BruceEitman/archive/2008/12/18/windows-ce-persisting-registry-changes-from-an-application.aspx

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 14 Jahren

@svenson
Danke für deine Antwort und dem dazugehörigen Link!