private string GetRegistData(string name) 

   string registData; 
   RegistryKey hkml = Registry.LocalMachine; 
   RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); 
   RegistryKey aimdir = software.OpenSubKey("XXX",true); 
   registData = aimdir.GetValue(name).ToString(); 
   return registData; 

以上是读取的注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下的XXX目录中名称为name的注册表值;

解决方案 »

  1.   

    private bool IsRegeditExit(string name) 

       bool _exit = false; 
       string[] subkeyNames; 
       RegistryKey hkml = Registry.LocalMachine; 
       RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); 
       RegistryKey aimdir = software.OpenSubKey("XXX",true); 
       subkeyNames = aimdir.GetSubKeyNames(); 
       foreach(string keyName in subkeyNames) 
       { 
        if(keyName == name) 
        { 
           _exit = true; 
           return _exit; 
        } 
       } 
       return _exit; 

    以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中判断名称为name注册表项是否存在,这一方法在删除注册表时已经存在,在新建一注册表项时也应有相应判断; 
      

  2.   

    注册表各种操作!
    http://www.cnblogs.com/hanfeng/archive/2005/03/03/112246.html