I am getting error cannot write to the registry key when i am trying to save my keys in the registry .
//Here is my code .
Note : I tried to run as an Administartor assuming some permission problems still getting the same error ....
private const string RegistryKeyName = "Skms";
private readonly RegistryKey SoftwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE");
public KeyManagementRegistryKeyChangeImpl(bool writeable)
{
this.writable = writeable;
RegistryKey skms;
if (Environment.Is64BitOperatingSystem == true)
{
skms = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(RegistryKeyName,true);
}
else
{
skms = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
}
if (null == skms)
{
skms = SoftwareKey.CreateSubKey(RegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree);
}
if(skms == null)
{
throw new System.ArgumentException(string.Format(CultureInfo.InvariantCulture,
@"Registry Key 'HKEY_LOCAL_MACHINE\SOFTWARE\{0}' not found or created",
RegistryKeyName));
}
Decryptor decryptor = Decryptor.Create();
Try this:
RegistryKey skms = SoftwareKey.OpenSubKey(RegistryKeyName, true);
The second parameter should be set to true if you need write access to the key.
-EDIT-
On 64-bit system, you can try this (if you are using .Net 4):
private readonly RegistryKey SoftwareKey =
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).
OpenSubKey("SOFTWARE");
if (null == skms)
{
skms = Registry.LocalMachine.OpenSubKey("SOFTWARE",true);
RegistryKey key = skms.CreateSubKey(
RegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree);
}
This is the answer for my question .
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With