在我的控制台应用程序中,我想创建一个 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();
}
这是我的 app.manifest
<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>
我还应该怎么做才能将值写入注册表子项?
PS:虽然网上有很多类似的文章,我都参考了,但没有一个能帮到我。
这对我有用(VS 2015,Windows 64 上的 32 位应用程序)(在 64 位配置单元上测试)=>
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);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句