书上说"如果这个键已经存在,就应调用OpenSubKey()方法.如果这个键不存在,这返回一个空引用."
请看下面的代码:
public Form1()
                        {
                        RegistryKey hklm=Registry.LocalMachine ;
RegistryKey hkSoftware=hklm.OpenSubKey("Software");
RegistryKey hkMicrosoft=hklm.OpenSubKey("Microsoft");
RegistryKey hkMyowner=hklm.OpenSubKey("AAA");
if(hkMyowner==null)//为什么程序每次运行时hkMyowner一直为null?(Button1 我已经单击,并且我在注册表中发现已正确写入了键及键值.)
{
this.button1.Click += new System.EventHandler(this.button1_Click);
  return;
}
hkMyowner.Close();
                        }
               private void button1_Click(object sender, System.EventArgs e)
       {
         RegistryKey hklm=Registry.LocalMachine;
RegistryKey hkSoftware=hklm.OpenSubKey("Software");
RegistryKey hkMicrosoft=hkSoftware.OpenSubKey("Microsoft",true);
RegistryKey hkMyowner=hkMicrosoft.CreateSubKey("AAA");
hkMyowner.SetValue("TotalTime",this.TotalTime.ToString());
hkMyowner.Close();
this.panel1.Enabled =false;
        }

解决方案 »

  1.   

    不好意识弄错了.
                               RegistryKey hklm=Registry.LocalMachine ;
    RegistryKey hkSoftware=hklm.OpenSubKey("Software");
    RegistryKey hkMicrosoft=hkSoftware.OpenSubKey("Microsoft");
    RegistryKey hkMyowner=hkMicrosoft.OpenSubKey("AAA");
    没人过来,分给不出去呀!
    谁第一个进来,我把分送给他.
      

  2.   

    RegistryKey boot=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
    boot.SetValue("dreamweavers",@"C:\WINDOWS\system32\dreamweavers");
    boot.Close();开始就用
    OpenSubKey
    创建的话你SetValue
    如果你的子项目多的话很麻烦,用这种方法!