尽管具有管理员权限,但无法创建/写入注册表子项的值C#
在我的控制台应用程序中,我想创建一个DWORD值,并将它的值设置为本地计算机中我的注册表子项的2。请注意,我拥有计算机的管理员权限 下面是我的代码,正在成功执行,但我看不到注册表中设置的任何值尽管具有管理员权限,但无法创建/写入注册表子项的值C#,c#,.net,registry,uac,registrykey,C#,.net,Registry,Uac,Registrykey,在我的控制台应用程序中,我想创建一个DWORD值,并将它的值设置为本地计算机中我的注册表子项的2。请注意,我拥有计算机的管理员权限 下面是我的代码,正在成功执行,但我看不到注册表中设置的任何值 string keyPathI = @"SOFTWARE\Microsoft\Terminal Server Client"; string keyPathII = @"SOFTWARE\WOW6432Node\Microsoft\Terminal Serv
string keyPathI = @"SOFTWARE\Microsoft\Terminal Server Client";
string keyPathII = @"SOFTWARE\WOW6432Node\Microsoft\Terminal Server Client";
RegistryKey keyOne = Registry.LocalMachine.OpenSubKey(keyPathI, true);
RegistryKey keyTwo = Registry.LocalMachine.OpenSubKey(keyPathII, true);
if (keyOne != null)
{
keyOne.SetValue("RemoteDesktop_SuppressWhenMinimized", 2, RegistryValueKind.DWord);
keyOne.Close();
}
if (keyTwo != null)
{
keyTwo.SetValue("RemoteDesktop_SuppressWhenMinimized", 2, RegistryValueKind.DWord);
keyTwo.Close();
}
这是我的应用程序清单
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
我还应该做些什么来将值写入注册表子项
注:虽然网上有很多类似的文章,但我都引用了,但没有一篇能帮到我。这对我来说很有效(VS 2015,Windows 64上的32位应用程序)(在64位hive上测试)=>
谢谢,它成功了,最好的是我已经删除了app.manifest的更改,而且它仍然能够将值写入我的本地计算机注册表。
using (RegistryKey rkLocalMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey rk = rkLocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Terminal Server Client", true))
{
rk.SetValue("RemoteDesktop_SuppressWhenMinimized", 2, RegistryValueKind.DWord);
}
}