我想要在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地址
你显然有一个程序在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] 举报,一经查实,本站将立刻删除。