views:

54

answers:

3

I am getting a NullReference Exception when I try to set a value to a registry key. Below is my code. Does anyone know why?

using System;
using Microsoft.Win32;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
           RegistryKey myKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\Current Version\\Policies\\System", true);
            myKey.SetValue("DisableTaskMgr", 0, RegistryValueKind.DWord);

        }
    }
}
+4  A: 

Try CreateSubKey instead of OpenSubKey. The latter will return null if the key does not exist. It's likely the key does not exist and that is why you hit a null reference on the next line.

JaredPar
A: 

The problem was the space between Current Version. Thank you for your responses nontheless

No, you'll still have a problem if the subkey isn't there. Suggest you take Jareds advice.
paxdiablo
+3  A: 

Current Version should be one word. I.e. CurrentVersion.

Edit: I also agree with Jared you should be using CreateSubKey as well.

Ray