これに答える前に、「簡単な Google 検索を実行してください」と答えてください。私はすでに持っていることを指摘したいと思います。これが状況です。レジストリキーの値を変更しようとする次の方法があります。私が得ている問題は、キーを writeable として開いたにもかかわらず、実行すると UnauthorizedAccessException がスローされることです。私はVisual Studioを管理者として実行していますが、マニフェストファイルを使用して小さな.exeを作成しようとしましたが、管理者として実行することを強制し、コードを実行できませんでした。キーは既に存在します。CreateKey メソッドに入ろうとしません。これがコードのブロックです。
Path = "S-1-5-21-1644491937-1078145449-682003330-5490\Software\Microsoft\Windows\CurrentVersion\Policies\System"
Key = "DisableTaskMgr"
NewValue = 1
public OperationResult ModifyKey()
{
OperationResult result = new OperationResult();
if (!Path.IsNullOrEmptyTrim())
{
if (!Key.IsNullOrEmptyTrim())
{
try
{
var key = Microsoft.Win32.Registry.Users.OpenSubKey(Path, true);
if (key != null)
{
key.SetValue(Key, NewValue);
key.Close();
}
else
{
result = CreateKey();
}
}
catch (Exception ex)
{
result.SetFail("Error accessing registry", ex);
}
}
else
{
result.SetFail("Registry key was null");
}
}
else
{
result.SetFail("Registry path was null");
}
return result;
}
各 OpenSubKey 呼び出しを書き込み可能に設定するレジストリ ツリーを手動でたどる必要がありますか? 私もこれを試しましたが、それでも同じエラーがスローされました...