C # Registry SetValue löst UnauthorizedAccessException aus

8

Bevor Sie versuchen, dies zu beantworten, führen Sie eine schnelle Google-Suche durch. Ich möchte darauf hinweisen, dass ich es bereits getan habe. Hier ist die Situation, ich habe die folgende Methode, die versucht, einen Registrierungsschlüsselwert zu ändern. Das Problem, das ich bekomme, ist, dass es bei der Ausführung eine UnauthorizedAccessException ausgibt, obwohl ich den Schlüssel als schreibbar geöffnet habe. Ich führe Visual Studio als Administrator aus und versuche sogar, eine kleine EXE-Datei mit einer Manifest-Datei zu erstellen, die die Ausführung als Administrator erzwingt, der den Code ohne Erfolg ausführt. Der Schlüssel existiert bereits, er versucht nicht, in die CreateKey-Methode zu gehen. Hier ist der Code-Block.

%Vor%

Muss ich manuell durch die Registrierungsstruktur gehen, um jeden OpenSubKey-Aufruf auf beschreibbar zu setzen? Ich habe das auch versucht, warf immer noch den gleichen Fehler ...

    
Middas 01.08.2012, 21:56
quelle

6 Antworten

2

Als letzten Versuch, herauszufinden, was vor sich geht, habe ich einen einfachen Dienst zum Testen dieses Codes erstellt, der als lokales Systemkonto ausgeführt wird. Es sind die höchsten Privilegien, die ich mir vorstellen kann, um den Code auszuführen. Das Ausführen des Codes mit diesen Berechtigungen funktionierte.

Besonderer Dank geht an 0_ _

Middas 02.08.2012, 16:24
quelle
13

in der Variablen für Ihren Schlüssel

%Vor%

ändern zu

%Vor%     
Sorceri 01.08.2012 22:21
quelle
3

Ein mögliches Problem, das ich mit Ihrem Code sehe, ist, dass die Variable Path auf eine Zeichenkette gesetzt wird, die die Zeichen \ nicht verdeckt. Wie wäre es mit etwas wie:

%Vor%     
Eric 01.08.2012 22:06
quelle
3

Haben Sie versucht, die Zugriffsregel und die Berechtigungen festzulegen?

%Vor%     
0_______0 01.08.2012 22:35
quelle
-1

Setzen Sie nur Grants für DWORD. Sie müssen die Registrierung öffnen und beim letzten Ordnerpfad rechtsklicken und Grants setzen, Alle Anwendungen wählen und Gesamtkontrolle prüfen. Ich hoffe Dir zu helfen.

    
Felipe Miranda 10.03.2016 17:07
quelle
-1

nur Registry.SetValue(sub_key, key, value);

Beispiel:

%Vor%     
Grigory 06.10.2017 03:23
quelle