为什么SCRNSAVE.EXE值没有按代码更新

时间:2012-10-24 05:33:23

标签: c# registry windows-screensaver

我想使用我的c#示例代码更新“SCRNSAVE.EXE”值。

但它不允许我这样做.. !!

任何人都可以帮我这个,下面是我用来更新价值的功能。

private void setAsDefaultScreenSaver(string valuePath)

{

   RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop");

   if (key == null)
     return;
   else
   {
      key.SetValue("SCRNSAVE.EXE", valuePath); 
      key.SetValue("ScreenSaveActive", "1");
   }

}

1 个答案:

答案 0 :(得分:2)

您正在以只读方式打开子项。你需要传入true作为第二个参数来写入它。

private void setAsDefaultScreenSaver(string valuePath)
{
       RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",true);

       if (key == null)
         return;
       else
       {
          key.SetValue("SCRNSAVE.EXE", valuePath); 
          key.SetValue("ScreenSaveActive", "1");
       }
       key.Close(); //close the key and flush it to disk


 }