私はvb.netを使ってWindowsアプリケーションを開発しています。今私はレジストリHKEY_CURRENT_USER\SOFTWARE\MYAPP
に7つの値を追加したいと思います。レジストリキーの下に7つのレジストリ値を繰り返し作成せずに
各値(7つのうち)は、サブキーに存在しない場合にのみ追加する必要があります。
最後には、MYAPP
SUBKEYの下で7だけ見たいと思っています。それ、どうやったら出来るの?あなたの助けが必要です。
私はvb.netを使ってWindowsアプリケーションを開発しています。今私はレジストリHKEY_CURRENT_USER\SOFTWARE\MYAPP
に7つの値を追加したいと思います。レジストリキーの下に7つのレジストリ値を繰り返し作成せずに
各値(7つのうち)は、サブキーに存在しない場合にのみ追加する必要があります。
最後には、MYAPP
SUBKEYの下で7だけ見たいと思っています。それ、どうやったら出来るの?あなたの助けが必要です。
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
マット、これは魅力のように機能します。皆さんのお手伝いをありがとうございます。 – Chata
あなたも大歓迎です - もしこの答えがあなたを助けたら –
私はVB.NETを行いませんが、「keyexists」のような機能があります想像:あなたはかもしれないは、マシンの権限に応じて、キーと値を作成するには、管理者権限を必要とすることに注意してください。あなたは 'Keyexists(' YourKey ')の場合は...'キーを追加するか、移動してください。 –
Windowsレジストリの構造は、キーにvaluenameという値があることです。そして、私はプログラムで別の値の名前を持つ新しい値(キーではない)を作成したいと思います。 – Chata
valueexist ...などの場合は、同じことが適用されます。このリンクはdelphiですが、役立つかもしれません。 http://stackoverflow.com/questions/16938305/how-to-check-if-a-registry-key-exists –