2016-07-20 1 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 ...などの場合は、同じことが適用されます。このリンクはdelphiですが、役立つかもしれません。 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

あなたも大歓迎です - もしこの答えがあなたを助けたら –

関連する問題