はじめに
現在のユーザーで書き込み権限はあるはずのレジストリへ、Microsoft.Win32.Registry 系統のレジストリ操作で書き込み失敗した場合の確認事項です。
(CreateSubKey も同様)
次のようなコードで System.UnauthorizedAccessException 例外が発生してしまう場合...
sample.cs
Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("*\\shell\\test").SetValue(null, "自作アプリで開く");
解決例
次のとおり OpenSubKey メソッドの第二引数に true を指定します。
sample.cs
Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("*\\shell\\test", true).SetValue(null, "自作アプリで開く");
OpenSubKey(String) は「サブキーを読み取り専用で取得します」でした。