Forum: PC-Programmierung Schlüssel in Registrierung schreiben (C#)


von Chris (Gast)


Lesenswert?

Hallo
Ich möchte in der Registry einen neuen Schlüssel erzeugen mit:

RegistryKey ItemKey = Registry.LocalMachine.CreateSubKey 
(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CommandStore\ 
\shell\\"+  name);
 ItemKey.SetValue("Standart", name);

Leider passiert genau nichts. Der neue Key und Wert wird nicht erstellt 
und Fehlermeldung bekomme ich auch keine...

Andere Schlüssel kann ich aber erzeugen. zB:
RegistryKey MenuKey = 
Registry.LocalMachine.CreateSubKey(@"Software\\Classes\\DesktopBackgroun 
d\\Shell\\"  + MenuName);

Funktioniert einwandfrei! Warum wird aber der obere nicht erstellt? Das 
Programm startet mit Adminrechten. Habe ich etwas übersehen?

Vielen Dank im vorraus!

von Peter II (Gast)


Lesenswert?

bei C# verwendet man etweder @ oder \\ aber doch nicht beides? Wenn man 
@ verwendet dann reicht ein \.

könnte es sein das STandard mit d geschriebn wird?

ItemKey.SetValue("Standart", name);

auserdem heist diese eintrag nicht so, aus dem Grund steht er auch in 
(). Den muss man anders setzen.

von Chris (Gast)


Lesenswert?

okey wieder etwas dazugelernt! Danke!
Leider ist das Problem wegen des nicht erzeugens des Schlüssels 
immernoch vorhanden. Der Zweite Key wird einfach nicht erstellt....

Interessanterweise funktioniert es, wenn ich es nicht in LocalMachine 
schreibe/speichere, sondern CurrentUser. Also ist codetechnisch alles 
funktionsfähig.
Ich vermute, das es an mangelnder Rechte liegen könnte. Das Programm 
startet jedoch schon als Admin -> was könnte ich noch ausprobiern??

Edit:
mit @ und \\ zusammen funktioniert es auch :P

von Peter II (Gast)


Lesenswert?

Chris schrieb:
> Ich vermute, das es an mangelnder Rechte liegen könnte. Das Programm
> startet jedoch schon als Admin -> was könnte ich noch ausprobiern??

lade dir den ProcessMonitor runter und schau was in der Registry 
passiert.

von Peter II (Gast)


Lesenswert?

ein Rechte Problem kann es eignetlich nicht sein, sonst würdes du eine 
Exception bekommen, ich kann mir noch ein 32/64bit Problem vorstellen. 
Die Registry ist für 32bit Programm teilweise eine andere wie für 64bit 
Programm. Da wird jeweil ein anderer Zweig geladen.

von Chris (Gast)


Lesenswert?

Vielen Dank für den Hinweis, genau das war mein Problem!

von Daniel (Gast)


Lesenswert?

Ich habe das Problem das er es nicht in Software\Microsoft schreibt 
sondern in Software\Wow6432Node\Microsoft geschrieben.

Hast Du Dein Problem gelöst? Wäre nett wenn Du einen codeschnipsel 
posten könntest

Gruß

von bluppdidupp (Gast)


Lesenswert?


von Stand-Art (Gast)


Lesenswert?

Na hoffentlich benutzt du nicht wirklich "Standart", sondern das 
wahrscheinlich gemeinte "Standard", falls es nicht eh nur ein 
Beispiel-Name fürs Forum war.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.