2011-03-07 3 views
4

왜 작동하지 않습니까? [HKEY_LOCAL_MACHINE \ SOFTWARE \ MyService]에 레지스트리 키를 만들려고하지만 아무 것도 생성되지 않습니다.레지스트리에 대한 간단한 질문입니다. CreateSubKey

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using Microsoft.Win32; 

namespace RegistryKey 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      const string SUB_KEY_NAME = @"SOFTWARE\MyService"; 

      // Create a subkey named MyService under HKEY_LOCAL_MACHINE. 
      Registry.LocalMachine.CreateSubKey(SUB_KEY_NAME); 
     } 
    } 
} 

업데이트 :는 신경 쓰지 마십시오. 나는 바보 야. 원격 레지스트리 편집기를 사용하여 레지스트리가 regedit와 동일하게 나타날 것이라는 신념을 조사했습니다. 그것은하지 않았다! regedit를 사용하여 경로를 볼 수 있습니다.

+1

을 내가 그 코드가 실행될 때 예외를 받고되지 않습니다 같은데요? –

+0

맞습니다. 예외 없음. –

답변

7

HKLM에 대한 쓰기 권한이 없습니다. 여기에 글을 쓰려면 다음 중 하나가 필요합니다.

  • 승격 된 사용자로 프로세스를 실행하거나.
  • 은 설치 중에 HKLM에 쓰려고 시도합니다.
+1

이 경우에는'SecurityException'을 완전히 얻어야합니다. 그래서 나는 처음에 질문을 던졌다. 이상하게도, 나는이 대답에 완전히 동의하지만. –

+0

@Cody 당신의 천둥을 훔쳐서 미안하지만,이 충고는 너무 근본적입니다. 나는 원래의 문제로 무엇이 진행되고 있는지 정확히 이해하려고 노력하거나 기다리지 않아도됩니다. 자신이 말했듯이, 그러한 문제는 99.9 %의 시간에 이런 방식으로 해결됩니다! –

1

이 코드를보십시오 :

RegistryKey regkey = Registry.CurrentUser; 
regkey = regkey.CreateSubKey(SUB_KEY_NAME); //this is the path then you create yours keys 
regkey.SetValue("Install", "ok"); //name of key exp:(install) and then the value exp:(ok) 
관련 문제