64位操作系统注册表与C#对注册表操作
2013-10-12 10:45
197 查看
64位windows中包含了32位的和64位的两套系统程序,分别位于C:\Program Files (x86)和C:\Program
Files中。IE,MediaPlayer等都有32位和64位两个版本的。在64位的操作系统中,32程序和64位程序读取的是位置的注册表项,HKEY_LOCAL_MACHINE\Software在
64 位版本的注册表编辑器中对应的是64位程序的注册表项,而32
位注册表项被映射为HKEY_LOCAL_MACHINE\Software\WOW6432Node。如果要两个版本都生效的话,需要同时修改这两个地方的表项。
C#对注册表操作的时候也得注意,读取方法一般用:RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);(这里是系统自动启动项为例)。在项目->属性->生成页面中中有一个目标平台的选项,这里如果选择Any CPU,上面的key值包含64位和32位两个注册表项的取值,如果该选项选择的是X86则key值只包含32位注册表对应的取值。在对注册表更新操作中也是如此,例如添加一个注册表项,如果选择的是X86则只添加到32注册表对应项下。
Files中。IE,MediaPlayer等都有32位和64位两个版本的。在64位的操作系统中,32程序和64位程序读取的是位置的注册表项,HKEY_LOCAL_MACHINE\Software在
64 位版本的注册表编辑器中对应的是64位程序的注册表项,而32
位注册表项被映射为HKEY_LOCAL_MACHINE\Software\WOW6432Node。如果要两个版本都生效的话,需要同时修改这两个地方的表项。
C#对注册表操作的时候也得注意,读取方法一般用:RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);(这里是系统自动启动项为例)。在项目->属性->生成页面中中有一个目标平台的选项,这里如果选择Any CPU,上面的key值包含64位和32位两个注册表项的取值,如果该选项选择的是X86则key值只包含32位注册表对应的取值。在对注册表更新操作中也是如此,例如添加一个注册表项,如果选择的是X86则只添加到32注册表对应项下。
相关文章推荐
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
- 关于64位操作系统使用C#访问注册表失败的问题
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
- 联想V480”虚拟机被配置为64位客户机操作系统,但是64位操作不可用,已为该虚拟机禁用长模式“的解决办法
- C# 注册表操作
- 解决C#操作注册表权限不够的问题
- c#操作注册表
- 64位和32位操作系统的注册表目录树区别
- C#通过操作注册表检测office版本
- 已将该虚拟机配置为64位客户机操作系统,但是无法执行64位操作。此主机支持Intel VT-x,但Intel VT-x禁用
- c#中操作注册表
- c# 操作注册表例子
- C#操作注册表建立文件关联
- 自动化测试读写64位操作系统的注册表
- C#中对注册表的操作
- c# 注册表操作,创建,删除,修改,判断节点是否存在
- C# 32位程序与64位程序读\写注册表的区别
- C# Tips: 64位操作系统运行P/Invoke程序出现BadImageFormatException错误,错误代码:0x8007000B