システムレジストリへの書き込み、読み込み、削除を行うレジストリに書き込むデータ型を指定して書き込む静的メソッドを利用するレジストリから読み込む静的メソッドを利用する指定したキーにあるすべてのキーと値の名前を取得する値の種類を調べるREG_EXPAND_SZ型のデータを展開せずに取得するレジストリを削除するこの記事への評価、コメントレジストリへの書き込み、読み込み、削除を行うここでは、レジストリから値を読み込む、レジストリに値を書き込む、レジストリの値やキーを削除する方法を紹介します。レジストリの操作全般は、RegistryKeyクラスを使って行うことができます。レジストリに書き込むまずはじめにレジストリに書き込む例を示します。RegistryKey.CreateSubKeyメソッドでキーを開き、RegistryKey.SetValueメソッドで書き込みます。次の例では、レジストリのキー"HKEY_CURRENT_USER\Software\test\sub"にデータを書き込んでいます。Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\test\sub")'上のコードでは、指定したキーが存在しないときは新しく作成される。'作成されないようにするには、次のようにする。Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\test\sub");//上のコードでは、指定したキーが存在しないときは新しく作成される。//作成されないようにするには、次のようにする。bs);//閉じるregkey.Close();レジストリエディタで見ると、"HKEY_CURRENT_USER\Software\test\sub"に次のように書き込まれます。「(既定)」「(標準)」に書き込むには、SetValueメソッドで値の名前に空白文字列""、または、Nothing(C#では、null)を指定します。補足:Int32型以外の整数は、REG_SZで書き込まれます。REG_DWORDで書き込まれるようにするには、Int32型に変換するか、「データ型を指定して書き込む」の方法を使ってください。0)」としたり、C#であれば、「unchecked((int)uintValue)」とする方法があります。負のInt32型整数は、REG_DWORDで書き込まれます。このようにして書き込まれた値は、「レジストリから読み込む」のようにGetValueメソッドでInt32型として読み込めば元のまま負の整数として取得できますので、通常は特に気にする必要はありません。補足:レジストリのキーを開くためにCreateSubKeyを使うか、OpenSubKeyを使うか迷うかもしれませんが、OpenSubKeyは指定のない限り読み取り専用で開くため、レジストリに書き込むときはCreateSubKeyで開き、読み取るときはOpenSubKeyで開くというのが基本となるでしょう。2.0からは、SetValueメソッドの3番目のパラメータにより、レジストリデータ型を指定して書き込むことができます。書き込もうとしている値が指定されたデータ型と一致しない場合は、エラーが発生します。下にREG_EXPAND_SZとREG_QWORDで書き込む例を示します。Microsoft.Win32.RegistryValueKind.QWord);//閉じるregkey.Close();SetValueメソッドの3番目のパラメータに指定できるRegistryValueKind列挙体のメンバとその意味は、次のようなものです(MSDNからの抜粋)。APIのREG_BINARYに相当。32ビットのバイナリ数値。0x00000000~0xFFFFFFFF(0~4294967295)の値。APIのREG_DWORDに相当。値を取得するときに展開される環境変数(%PATH%など)を含む文字列。APIのREG_EXPAND_SZに相当。APIのREG_MULTI_SZに相当。64ビットのバイナリ数値。0x0000000000000000~0xFFFFFFFFFFFFFFFF(0~18446744073709551615)の値。APIのREG_QWORDに相当。APIのREG_SZに相当。