【C#】レジストリの扱い方

レジストリへの読み込み

手順

 [1] Registry.LocalMachine.OpenSubKey()で、レジストリキーのインスタンスを取得
 [2] GetValue()で値を取得

サンプル

// 操作するレジストリ・キーの名前
String registryKeyName = @"SOFTWARE\Microsoft\.NETFramework";
// 取得処理を行う対象となるレジストリの値の名前
String registryValueName = "InstallRoot";

String value;

// レジストリ・キーのパスを指定してレジストリを開く
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(registryKeyName))
{
    // レジストリの値を取得
    value = (string)registryKey.GetValue(registryValueName);
}

注意点

 * 「using Microsoft.Win32」を追加する
 * 該当するキー名と値の名称がなかった場合は、nullが返ってくる
 (registryKeyとvalue が null になる可能性がある)

参考文献

http://www.atmarkit.co.jp/fdotnet/dotnettips/118regget/regget.html

レジストリへの書き込み

手順

 [1] Registry.LocalMachine.CreateSubKey()で、レジストリキーのインスタンスを取得
 [2] SetValue()で値を設定

サンプル

// 操作するレジストリ・キーの名前
String registryKeyName = @"Software\Sample";
// 取得処理を行う対象となるレジストリの値の名前
String registryValueName = "InstallRoot";

//キー(HKEY_CURRENT_USER\Software\Sample)を開く
using (RegistryKey registryKey = Registry.LocalMachine.CreateSubKey(registryKeyName))
{
    // レジストリの値を設定
    registryKey.SetValue(registryValueName, "TestRegiData");
}

参考文献

http://www.atmarkit.co.jp/fdotnet/dotnettips/124regset/regset.html
http://dobon.net/vb/dotnet/system/registrykey.html

レジストリの削除

キーにある値を削除

 * Registry.LocalMachine.DeleteSubKey

サンプル

// 操作するレジストリ・キーの名前
String registryKeyName = @"Software\Sample";
// 取得処理を行う対象となるレジストリの値の名前
String registryValueName = "InstallRoot";

//キー(HKEY_CURRENT_USER\Software\Sample)を開く
using (RegistryKey registryKey = Registry.LocalMachine.CreateSubKey(registryKeyName))
{
    // レジストリの値を設定
    registryKey.DeleteValue(registryValueName, false);
}

参考文献

http://codepanic.itigo.jp/cs/registry_delvalue.html

キーにある値を削除

 * Registry.LocalMachine.DeleteSubKeyTree() を使用する

参考文献

http://dobon.net/vb/dotnet/system/registrykey.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/124regset/regset.html

関連記事

レジストリ書き込み時に例外「UnauthorizedAccessException」が発生する

http://blogs.yahoo.co.jp/dk521123/31599720.html