Visual C# 2010 を使用していますが、レジストリ キーの設定に問題があります。これは、最初は管理者として実行していなかったという事実に関係していると思いましたが、リリースをビルドしてからexeを右クリックして「管理者として実行」を選択しても無駄でした。
また、RegistryPermission クラスを使用してみましたが、違いはないようです。
コードは次のとおりです。
RegistryKey rkey = Registry.LocalMachine;
// RegistryPermission f = new RegistryPermission(
// RegistryPermissionAccess.Write | RegistryPermissionAccess.Read,
// @"HKEY_LOCAL_MACHINE\SOFTWARE\Company\Product");
/**********************/
/* set registry keys */
/**********************/
RegistryKey wtaKey = rkey.OpenSubKey(@"SOFTWARE\Company\Product", true);
try
{
wtaKey.SetValue("key1", 123);
wtaKey.SetValue("key2", 567);
wtaKey.SetValue("key3", textbox.Text);
wtaKey.SetValue("key4", "some string");
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(ex.Message);
return;
}
これにより、「管理者として実行」しても、実行するたびに例外からエラーメッセージが表示されます。これを回避する方法はありますか?私の標準ユーザー アカウントでは、regedit にアクセスして手動でこれらの値を問題なく変更できるため、奇妙に思えます。