2016-07-20 4 views
1

vb.net을 사용하여 Windows 응용 프로그램을 개발 중입니다. 이제 레지스트리에 HKEY_CURRENT_USER\SOFTWARE\MYAPP의 7 개 값을 추가하고 싶습니다.반복없이 레지스트리 키 아래에서 7 개의 레지스트리 값 만들기

각 값 (7 개 중)은 하위 키에없는 경우에만 추가해야합니다.

결국 나는 MYAPP SUBKEY 아래에서만 7을보고 싶습니다. 어떻게해야합니까? 도움이 필요해.

+0

내가 VB.NET하지 않지만 "keyexists"와 같은 기능이 상상할 것입니다. 'Keyexists ('YourKey ')가 아니라면 ...'키를 추가하거나 계속 진행하십시오. –

+0

Windows 레지스트리의 구조는 키에 값이있는 valuename이 있다는 것입니다. 그리고 나는 다른 값을 가진 새로운 값 (키가 아님)을 프로그래밍 방식으로 생성하려고합니다. – Chata

+0

동일해야 valueexist ... 등이 링크가 적용되어야합니다.이 링크는 델파이지만 도움이 될 수도 있습니다. http://stackoverflow.com/questions/16938305/how-to-check-if-a-registry-key-exists –

답변

1

RegistryKey 개체의 GetValue을 사용하고 결과가 Nothing 인 경우 값이 존재하지 않으면 결과를 테스트 할 수 있습니다.

다음은 작동시켜야하는 완전한 예입니다. 당신이 필요 관리자 권한이 시스템 권한에 따라 키와 값을 만들 수 있습니다 :

Dim myAppKey = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, Microsoft.Win32.RegistryView.Default) 
    If myAppKey Is Nothing Then Throw New Exception("Failed to open registry") 

    Dim subKeyName = "SOFTWARE\MYAPP" 

    'attempt to open the subkey with write acces because we need this if we are creating values 
    Dim subKey = myAppKey.OpenSubKey(subKeyName, True) 
    If subKey Is Nothing Then 
     'create the sub key because it doesn't exist 
     myAppKey.CreateSubKey(subKeyName) 
     're open the new key 
     subKey = myAppKey.OpenSubKey(subKeyName, True) 
    End If 

    'create values in a loop for testing 
    For i = 0 To 6 
     If subKey.GetValue("Value" & i) Is Nothing Then 
      'value does not exist so create it 
      subKey.SetValue("Value" & i, i) 
     End If 
    Next 
+0

매트, 이것은 매력처럼 작동합니다. 도와 주셔서 감사합니다. – Chata

+0

당신은 환영합니다 -이 대답이 당신을 도왔다면 또한 upvote 바랍니다 –