Wie RegistryKey verwenden.SetValue
Ich versuche, erstellen Sie einen neuen Registrierungsschlüssel mit dem folgenden code, und bekomme diese Fehlermeldung:
Cannot write to the registry key.
Wohin gehe ich falsch?????
var rs = new RegistrySecurity();
string user = Environment.UserDomainName + "\\" + Environment.UserName;
rs.AddAccessRule(new RegistryAccessRule(user,
RegistryRights.WriteKey | RegistryRights.SetValue,
InheritanceFlags.None,
PropagationFlags.None,
AccessControlType.Allow));
RegistryKey key;
key = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", RegistryKeyPermissionCheck.ReadSubTree, rs);
key.SetValue("kashif", 1, RegistryValueKind.DWord);
key.Close();
Ja, ich bin mit einem administrator-Konto
InformationsquelleAutor kashif | 2013-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie öffnen Sie den neu erstellten Schlüssel für lese - /Schreibzugriff:
Ich bin mit Administratorrechten angemeldet sein. wenn ich mit dem erstellen der Anwendung und der rechten Maustaste auf die exe und dann als administrator läuft es gut, ich will nicht. das ist, warum ich bin mit dem Registrierungs-Sicherheit in der it.
Es funktioniert so nicht. Sie setzen die Sicherheit für den neuen Schlüssel, sondern um den neuen Schlüssel müssen Sie über Schreibberechtigung für
System
ersten. Und der einzige Weg, das laufen erhöht.Erhalten Sie keine Administratorrechte "über die Codierung". Wenn Sie könnte, alle anderen würden das auch tun und die UAC-Eingabeaufforderung für erhöhte Rechte hätte keinen Grund zu existieren, da wäre jeder umgehen.
danke. Sie löste mein problem, aber mit veränderten meine Programmierung die Art und Weise, die Sie vorgeschlagen, erstellt ein anderes problem, das ich gelöst habe durch diesen link stackoverflow.com/questions/3446211
InformationsquelleAutor Jon
Brauchen Sie nicht die
rs
Teil, es sei denn, Sie versuchen, ordnen Sie bestimmte Berechtigungen auf den Schlüssel, den Sie erstellen.Müssen Sie:
RegistryKey
variable. Hinzufügen einestrue
Boolean, um zu Kennzeichnen, dass Sie beschreibbar ist.RegistryKey
variable.Beispiel:
Wenn Sie nur wollen, zu Bearbeiten, einen vorhandenen Schlüssel als
System
ist, die Sie nicht verwendenCreateSubKey
werden, da der Schlüssel bereits vorhanden ist. Das ist nur für die Erstellung von neuen Schlüsseln. Verwenden SieOpenSubKey
.InformationsquelleAutor vapcguy