没有合适的资源?快使用搜索试试~ 我知道了~
注册表操件例子加说明
需积分: 1 0 下载量 187 浏览量
2010-09-24
11:04:05
上传
评论
收藏 8KB TXT 举报
温馨提示
试读
8页
注册表操件例子加说明,很简单,很好用的,VC例子.............................
资源推荐
资源详情
资源评论
HKEY hkey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SoftWare\\ORACLE\\ALL_HOMES\\ID0", 0, KEY_READ, &hkey) != ERROR_SUCCESS) //打开注册表中某一项
{
MessageBox("打开失败");
return;
}
DWORD dwValue = MAX_PATH;
DWORD dwType;
char cSeqlplusPath[MAX_PATH];
CString strUser = "";
memset(cSeqlplusPath, 0, sizeof(cSeqlplusPath));
RegQueryValueEx(hkey, "PATH", 0, &dwType, (LPBYTE)cSeqlplusPath, &dwValue); //查询某一个属性值
CString strSeqlplusPath = "";
strSeqlplusPath.Format("%s", cSeqlplusPath);
//MessageBox(strSeqlplusPath);
RegCloseKey(hkey); //关闭
一、实现方法
对注册表的编程要用到句柄,我们需要通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值,在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语---根一级键的保留句柄,如HKEY_CLASS_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER等,这些都是与注册表的根键相对应并且同名的句柄。当访问一个根键的时候,传递这些通用句柄。这就不用打开根键啦,因为他们总是在打开状态下,可使用默认键的句柄访问。
Win32 API提供了大约25个有关注册表的函数,他提供了对注册表的读取,写入,删除,以及打开注册表的所有函数,并且可以实现对注册表备份,连接和对远端注册表进行查看等功能。但是在编程的时候首先需要考虑你是在什么操作系统编辑此类程序,虽然微软的操作系统,如NT和Windows98都是32位操作系统,但是有些API函数中并不支持98,这点是要注意的。API经历和发展了很多年,有些函数已经重复,比如RegSetValue()及RegSetValueEx()都是用来设置注册表键值的,两者的区别在于前者是设置注册表键的默认值,仅支持作为数据类型的字符串,而后者不仅继承了前者的所有功能而且还能对多值或类型进行操作。一般API对比较新的函数都会在后缀追加"Ex"的同样名称函数,建议在编程中均应尽可能的使用高级函数。下面介绍一些比较常用的操作注册表的API函数:
1、RegCloseKey()
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SoftWare\\ORACLE\\ALL_HOMES\\ID0", 0, KEY_READ, &hkey) != ERROR_SUCCESS) //打开注册表中某一项
{
MessageBox("打开失败");
return;
}
DWORD dwValue = MAX_PATH;
DWORD dwType;
char cSeqlplusPath[MAX_PATH];
CString strUser = "";
memset(cSeqlplusPath, 0, sizeof(cSeqlplusPath));
RegQueryValueEx(hkey, "PATH", 0, &dwType, (LPBYTE)cSeqlplusPath, &dwValue); //查询某一个属性值
CString strSeqlplusPath = "";
strSeqlplusPath.Format("%s", cSeqlplusPath);
//MessageBox(strSeqlplusPath);
RegCloseKey(hkey); //关闭
一、实现方法
对注册表的编程要用到句柄,我们需要通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值,在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语---根一级键的保留句柄,如HKEY_CLASS_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER等,这些都是与注册表的根键相对应并且同名的句柄。当访问一个根键的时候,传递这些通用句柄。这就不用打开根键啦,因为他们总是在打开状态下,可使用默认键的句柄访问。
Win32 API提供了大约25个有关注册表的函数,他提供了对注册表的读取,写入,删除,以及打开注册表的所有函数,并且可以实现对注册表备份,连接和对远端注册表进行查看等功能。但是在编程的时候首先需要考虑你是在什么操作系统编辑此类程序,虽然微软的操作系统,如NT和Windows98都是32位操作系统,但是有些API函数中并不支持98,这点是要注意的。API经历和发展了很多年,有些函数已经重复,比如RegSetValue()及RegSetValueEx()都是用来设置注册表键值的,两者的区别在于前者是设置注册表键的默认值,仅支持作为数据类型的字符串,而后者不仅继承了前者的所有功能而且还能对多值或类型进行操作。一般API对比较新的函数都会在后缀追加"Ex"的同样名称函数,建议在编程中均应尽可能的使用高级函数。下面介绍一些比较常用的操作注册表的API函数:
1、RegCloseKey()
原型:RegCloseKey(HKEY hKey)
解释:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果,关闭一个键后,句柄变为非法,此时应释放句柄。
2、RegCreateKeyEx()
原型:LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved,
LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult, LPDWORD lpdwDisposition );
解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。提供该函数是为了向后兼容。所有的WIN32应用程序应使用函数RegCreateKeyEx()。各参数及返回值的含义如下:
各参数及返回值的含义如下:
・hKey为主键值,可以取下面的一些数值:HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、 HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USER、HKEY_PERFORMANCE_DATA(WINNT操作系统)、HKEY_DYN_DATA(WIN9X操作系统);
・参数lpSubKey为一个指向以零结尾的字符串的指针,其中包含将要创建或打开的子键的名称。子键不可以用反斜线(\)开始。该参数可以为NULL;
・参数Reserved为保留值,必须设置为0;
・参数lpClass为一个指向包含键类型的字符串。如果该键已经存在,则忽略该参数;
・参数dwOptions为新创建的键设置一定的属性。可以取下面的一些数值: REG_OPTION_NON_VOLATILE ,表示新创建的键为一个非短暂性的键(数据信息保存在文件中,当系统重新启动时,数据信息恢复);REG_OPTION_VOLATILE,表示新创建的键为一个短暂性的键(数据信息保存在内存中),Windows95忽略该数值;REG_OPTION_BACKUP_RESTORE 仅在WINNT中支持,可以提供优先级支持;
・参数samDesired用来设置对键访问的权限,可以取下面的一些数值:KEY_CREATE_LINK,表示准许生成符号键;KEY_CREATE_SUB_KEY 表示准许生成子键;KEY_ENUMERATE_SUB_KEYS 表示准许生成枚举子键;KEY_EXECUTE 表示准许进行读操作;KEY_NOTIFY表示准许更换通告; KEY_QUERY_VALUE 表示准许查询子键;KEY_ALL_ACCESS 提供完全访问,是上面数值的组合;
KEY_READ 是下面数值的组合:KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY; KEY_SET_VALUE 表示准许设置子键的数值;KEY_WRITE 是下面数值的组合:KEY_SET_VALUE、KEY_CREATE_SUB_KEY;
剩余7页未读,继续阅读
资源评论
fuwulin
- 粉丝: 13
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功