win7 64bit+vs2010 操作注册表
注册表五个根键
HKEY_CLASSES_ROOT——管理文件系统
HKEY_LOCAL_MACHINE——管理当前系统硬件配置
HKEY_LOCAL_USER——管理系统当前用户配置
HKEY_USERS——管理系统的用户信息
HKEY_CURRENT_CONFIG——管理当前用户的系统配置
在HKEY_LOCAL_MACHINE\SOFTWARE 目录下新建子键并创建REG_DWORD (32位数值),示例代码:
#include <stdio.h>
#include <Windows.h>
#include <tchar.h>
int _tmain(int argc, _TCHAR* argv[])
{
HKEY RegHandle;
DWORD dw;
HKEY RegOpenHandle;
DWORD dwYan = 0xff;
if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\yan"), NULL, 0, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &RegHandle, &dw))
printf("RegCreateKeyEx 执行成功\n");
else
printf("RegCreateKeyEx 执行失败\n"); RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\yan"), NULL, KEY_ALL_ACCESS, &RegOpenHandle); RegSetValueEx(RegOpenHandle, _T("HelloWord"), NULL, REG_DWORD, (const unsigned char *)&dwYan, sizeof(DWORD)); system("pause");
return 0;
}
注册表位置
Windows7 64bit系统的注册表分32 位注册表项和64位注册表项两部分。
在64bit系统下,通过regedit中查看到指定路径下的注册表项均为64位注册表项,而32位注册表项被重定位到:HKEY_LOCAL_MACHINE\Software\WOW6432Node。
应用程序操作注册表的时候也分32bit方式和64bit方式。运行于64bit系统下的32bit应用程序默认操作32位注册表项(即被重定向到WOW6432Node下的子项);而64bit应用程序才是操作的直观子项。
比如,同在64bit系统下,使用如下代码访问注册表:
::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Sobey\\MPC "), 0, KEY_ALL_ACCESS, &hKey)
如果应用程序为32bit子系统,那么实际访问的注册表位置为:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Sobey\MPC(使用regedit工具软件对应的位置);
而如果应用程序为64bit子系统,那么实际访问的注册表位置将会是:HKEY_LOCAL_MACHINE\SOFTWARE\Sobey\MPC(使用regedit工具软件对应的位置)。
我用的是win7 64bit OS + VS2010,RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\yan"), NULL, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &RegOpenHandle);
添加了 KEY_WOW64_64KEY后还是不能写入到 64bit系统下的原注册表,不知道为什么。
win7 64bit+vs2010 操作注册表的更多相关文章
- [转]C#操作注册表
原文链接:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-regidit.html 下面我们就来用.NET下托管语言C#注册表操作,主 ...
- [荐]使用Js操作注册表
使用Js操作注册表 要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作. WshShell对象:可以在本地运行程序.操纵注册表内容.创建快捷方式或访问 ...
- c++ 操作注册表
1. 注册表简介 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Win ...
- .Net操作注册表--un
C#操作注册表 导入命名空间 Using MicroSoft.Win32;//64位系统装的64位版本
- C#操作注册表全攻略
相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病 毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项 ...
- C#获取cpu序列号 硬盘ID 网卡硬地址以及操作注册表 .
转:http://blog.csdn.net/smartsmile2012/article/details/8682295 #region 获取cpu序列号 硬盘ID 网卡硬地址 /**/ /// & ...
- VBS 操作注册表 十六进制
使用VBS操作注册表,通常使用RegRead/RegWrite/RegDelete方法,如: RegRead: 'read.vbs(将以下代码存为read.vbs文件) Dim OperationRe ...
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
原文:How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置 IS脚本操作注册表在64位平台下必须有特殊的设置 if (SYSINFO.bIsWow64) then ...
- C# 访问操作注册表整理
一..net注册表操作简介 .net中Registry 类,RegistryKey 类提供了操作注册表的接口 RegistryValueKind,用于指定操作注册表的数据类型. 二.使用实例 //获取 ...
随机推荐
- 14.3.3 Locks Set by Different SQL Statements in InnoDB 不同的SQL语句在InnoDB里的锁设置
14.3.3 Locks Set by Different SQL Statements in InnoDB 不同的SQL语句在InnoDB里的锁设置 locking read, 一个UPDATE,或 ...
- CString的部分实现剖析
一.CString初探: 在CString的实现中,其最基础的类结构如下: CString其实只有一个数据成员m_pszData,这个成员指向了字符串的首地址.但在MFC的具体实现中, m_pszDa ...
- python语言学习5——输入和输出
输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. 注意点: 字符串用的是单引号 碰到逗号输出时就会输出一个空格 输入 python提供了一个input(),可以让用户输入一个字 ...
- Android 调用谷歌语音识别
調用谷歌语音识别其实很简单,直接利用 intent 跳转到手机里面的谷歌搜索 代码也很简单,直接调用方法 startVoiceRecognitionActivity() 如果大家手机里面没有谷歌搜索, ...
- Nginx特点
Nginx特点:1,跨平台:Nginx 能够在大多数 Unix like OS编译执行,并且也有Windows的移植版本号.2,配置异常简单:很easy上手.配置风格跟程序开发一样,神一般的配置.3, ...
- Java中对不变的 data和object reference 使用 final
Java中对不变的 data和object reference 使用 final 许多语言都提供常量数据的概念,用来表示那些既不会改变也不能改变的数据,java关键词final用来表示常量数据.例如: ...
- 【翻译】我钟爱的Visual Studio前端开发工具/扩展
原文:[翻译]我钟爱的Visual Studio前端开发工具/扩展 怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做 ...
- 单点更新线段树 RMQ
D. Xenia and Bit Operations time limit per test 2 seconds memory limit per test 256 megabytes input ...
- 微通道对接ERP、CRM、OA、HR、SCM、PLM和其他管理系统解决方案
公司现有ERP.CRM.OA.HR.SCM.PLM等管理系统的对接微信公共平台服务 方法1:开放接口 企业开放现有系统数据接口给第三方,或由第三方开发数据接口对接微信公众平台 方法2:获取数据库 企业 ...
- Knockout应用开发指南 第七章:Mapping插件
原文:Knockout应用开发指南 第七章:Mapping插件 Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些 ...