2012-02-19 6 views
3

레지스트리를 찾아서 탐색기를 통해 액세스 할 수있게 한 후 내 Windows Phone을 망설였습니다. 내 목표는 연결된 모든 컴퓨터에서이 레지스트리 편집을 수행 할 빠른 콘솔 응용 프로그램을 작성하는 것입니다.C# 레지스트리 검색, 결과에서 역방향 트래버스

이것은 WINDOWS 7 REGISTRY입니다. 아니이 전화 내가 여기에 'ZuneDriver'

RegistryKey start = Registry.LocalMachine; 
    using (RegistryKey root = start.OpenSubKey(@"SYSTEM\CurrentControlSet\Enum\USB")) 
    { 
     string myKey = "ZuneDriver"; 
     SearchSubKeys(root, myKey); 

문제를 포함하는 장치 레지스트리 항목의 모든 인스턴스를 찾을 수 코드를 작성했습니다 지금까지 Here are the steps I am trying to follow

이 레지스트리 키가 'ZuneDriver'이다하는 하위 키 'Device Parameters'키의 값을 변경해야합니다. 내 검색 기능에 의해

static System.Collections.Specialized.StringCollection log = new System.Collections.Specialized.StringCollection(); 

: 순간

은, 검색 결과는에 저장됩니다

보관 된 결과는 다음과 같습니다
public static void SearchSubKeys(RegistryKey root, String searchKey) 
{ 
    foreach (string keyname in root.GetSubKeyNames()) 
    { 
     try 
     { 
      using (RegistryKey key = root.OpenSubKey(keyname)) 
      { 
       if (keyname == searchKey) 
       { 
        log.Add(key.Name); 
       } 


       SearchSubKeys(key, searchKey); 
      } 
     } 
     catch (System.Security.SecurityException) 
     { 
     } 
    } 
} 

:

HKEY_LOCAL_MACHINE을 \ 시스템 \ CurrentControlSet \ Enum \ USB \ VID_045E & PID_04EC & MI_00 \ 7 & b85dba6,403,210 0 & 0000 \ 장치 매개 변수 \ ZuneDriver

나는에 레지스트리 액세스하도록 내 프로그램을 좀하고 싶습니다

: 열거 \의 USB의 \의 VID_045E & PID_04EC & MI_00 \ 7 & b85dba6 & \ CURRENTCONTROLSET \

HKEY_LOCAL_MACHINE \ SYSTEM을 & 0000 0 \ 장치 매개 변수

라는 DWORD 값을 편집 할 수있는 'ShowInShell'

하지만 VID_045E 0,123,224 \ 결정한 필요 9,PID_04EC & MI_00 \ 7 & b85dba6 초기 검색을 통해 0000 \ .....

모든 포인터 또는 제안이 많이 감사합니다 :)

건배,

+0

토끼가 있어야합니다. 구멍. 확실히 그 키에 대한 쓰기 권한을 얻을 수 없습니다. 비록 당신이했다라고해도, 운전자는 그 매개 변수 중의 1 개가 전화 재시동없이 단지 해킹 당했다는 단서가 없기 때문에 여전히 효과가 없을 것이다. –

+0

초기 게시물을 편집했습니다. 이것은 Windows 레지스트리가 아니라 전화입니다. regedit를 사용하여 간단하게 할 수 있습니다. 프로세스를 자동화하는 코드를 만들려고합니다 : –

+0

[Windows 7에서 C# 응용 프로그램을 관리자 권한으로 실행하는 방법] 가능한 복제본 (http : // stackoverflow.com/questions/2818179/how-to-force-c-sharp-app-to-administrator-on-windows-7) –

답변

0

I 다음과 같이 할 수 있습니다.

+0

감사합니다. key.SetValue()에 nullReferenceException이 발생했습니다. –

+0

@Ben Roeves : 대신 OpenSubKey 대신 CreateSubKey를 시도해보십시오. 그렇지 않으면 stacktrace가 말하는 것을 알려주십시오. –

+0

죄송합니다, stacktrace가 무엇인지 모르겠습니다 .... 여기 제안 된 변경 사항이있는 코드에 대한 링크가 있습니다. [코드 패드 링크] (http://codepad.org/s6e3prb1) –