Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尽管具有管理员权限,但无法创建/写入注册表子项的值C#_C#_.net_Registry_Uac_Registrykey - Fatal编程技术网

尽管具有管理员权限,但无法创建/写入注册表子项的值C#

尽管具有管理员权限,但无法创建/写入注册表子项的值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

在我的控制台应用程序中,我想创建一个DWORD值,并将它的值设置为本地计算机中我的注册表子项的2。请注意,我拥有计算机的管理员权限

下面是我的代码,正在成功执行,但我看不到注册表中设置的任何值

            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);
    }
}