2012-07-14 129 views
2

可能重复:
Looking for C# registry class
Way to write on registry location如何通过C#中的代码编辑Windows注册表值(注册表)?

我试图在C#程序,通过做几件事情(清除临时文件夹提升窗口的速度,预取文件夹等)

但为了使程序强大,我需要编辑注册表值.. 我怎么能去做 ?

+3

“提升窗口的速度” - 好吧......现在,做不使用注册表值实际上损害的Windows性能?以什么方式?或者,正如他们所说,它只是蛇油。我并不孤单,认为它只是安慰剂(如果有的话),例如请参阅http://social.technet.microsoft.com/Forums/en/w7itproappcompat/thread/0407992a-b9b0-4f14-b9d6-7243ed21a110例如 - “注册表清理程序*所有*蛇油。 (...)肯布莱克,微软MVP(Windows桌面体验)自2003年以来' – 2012-07-14 15:48:12

回答

0
+0

谢谢,但你能否提供一个例子.. 我的意思是,我怎么能达到并改变MenuShowDelay值例如? – vexe 2012-07-14 15:46:37

2

您可能需要阅读本article

public string Read(string KeyName) 
{ 
    // Opening the registry key 
    RegistryKey rk = baseRegistryKey ; 
    // Open a subKey as read-only 
    RegistryKey sk1 = rk.OpenSubKey(subKey); 
    // If the RegistrySubKey doesn't exist -> (null) 
    if (sk1 == null) 
    { 
     return null; 
    } 
    else 
    { 
     try 
     { 
      // If the RegistryKey exists I get its value 
      // or null is returned. 
      return (string)sk1.GetValue(KeyName.ToUpper()); 
     } 
     catch (Exception e) 
     { 
      // AAAAAAAAAAARGH, an error! 
      ShowErrorMessage(e, "Reading registry " + KeyName.ToUpper()); 
      return null; 
     } 
    } 
} 
+0

代码中的'else'完全没有意义(对不起,我的宠物狗) – 2012-07-14 16:01:29

+0

你是什么意思? – Adil 2012-07-14 16:12:03

+0

如果不离开方法就没有办法返回null,是吗?所以'else'子句是多余的。不用说,if(sk == null){return null; }'只有'sk'不是'null'才会被执行。这当然是完全有效的代码,只是多余的。这只是一个风格问题。我个人不喜欢它带来的额外嵌套。我明白,有些人更喜欢更明确的意图,虽然。 – 2012-07-14 17:54:22