微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Registry.SetValue不适用于x86

我想要在registry中为x64和x86编辑特定的值(键入REG_SZ ),但SetValue方法不会更改x86的值。 该x64工作正常。 这是我的代码

RegistryKey regKeySpecific = RegistryKey.OpenBaseKey( RegistryHive.LocalMachine,RegistryView.Registry32); RegistryKey registryKey = regKeySpecific.OpenSubKey( "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\propertybag",true); registryKey.SetValue("ThisPCPolicy","Show",RegistryValueKind.String); registryKey.Close();

我在第一个代码行中使用RegistryView.Registry32参数来更改x86registry中的值,但这不起作用。

问题已经确定,但尚未解决。 此代码总是更改x64(WOW6432Node)registry中的密钥:

"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\propertybag"

C#:从文件打印图像

HKLM SYstem CurrentControlSet Control TimeZone@R_171_4045@ion TimeZoneKeyName损坏?

一个完整的user32.dll包装库可用于.NET?

Process.GetCurrentProcess()。MainWindowHandle返回零

sql Server Compact Edition数据库部署策略

如何创build无法正常终止或停止的Windows服务

Windows服务 – 安装2份

.NET和本机C ++应用程序之间进行通信的最佳方式

Windows进程和它连接到的IP地址

如何强制用户在WinForms中的用户pipe理员帐户

你显然有一个程序在x86(32位)模式下执行。 Windows x64为32位应用程序执行注册重定向,以便尝试访问

SOFTWAREMicrosoft

将改为访问

SOFTWAREWOW6432NodeMicrosoft

Registry32标志使这个相同的重定向可用于以x64运行的.NET应用程序。 它对你没有任何影响,因为操作系统已经打开了重定向

要从32位进程访问64位操作系统上的SOFTWAREMicrosoft ,应使用禁用重定向的Registry64标志。

记住(你的问题有这个倒退)

SOFTWARE是64位操作系统上的本地注册表,64位

SOFTWAREWOW6432Node是64位操作系统上的32位兼容性注册

WOW64不是提供64位支持的层。 当OS是64位时,它是提供32位应用程序支持的层。 这意味着“(支持)Windows(32)在Windows64”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐