龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

如何在VC++中使用注册表

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
如今修改注册表成为继超频之后的又一大热点,许多CFAN通过对注册表的修改使Win98显得更加个性化,诸多报刊杂志也纷纷扯起注册表这面旗帜,令人遗憾的是,在介绍注册表修改的众多

  如今修改注册表成为继超频之后的又一大热点,许多CFAN通过对注册表的修改使Win98显得更加个性化,诸多报刊杂志也纷纷扯起注册表这面旗帜,令人遗憾的是,在介绍注册表修改的众多的文章中,大都以手工修改为例,极少数文章也只介绍有关修改注册表软件的用法,至于如何在程序中实现却无人提及。为此我在Visual Studio6.0帮助文件中用Registry关键字进行搜索,在翻译软件帮助下及不断的上机实践下,我终于摸索出使用注册表接口(API)函数的一些用法,现拿出来与大家共享。

  在程序中使用注册表,不外乎创建、打开、读取、设置、删除这五个常规操作,(要想获得更详细的资料可以参考Visual Studio6.0帮助目录中MSDN Library Visual Studio6.0|Platform SDK|Window Base Services|General Library|Registry条目)。下面我们就来关注这五个接口函数的用法:

  一、 创建键RegCreateKeyEx

  通过RegCreateKeyEx函数可以在注册表中创建键,如果需要创建的键已经存在了,则打开键。函数原型如下:

  LONG RegCreateKeyEx(
  HKEY hKey,
  LPCTSTR lpSubKey,
  DWORD Reserved,
  LPTSTR lpClass,
  DWORD dwOptions,
  REGSAM samDesired,
  LPSECURITY_ATTRIBUTESlpSecurityAttributes,
  PHKEY phkResult,
  LPDWORD lpdwDisposition
  );

  各参数及返回值的含义如下:

  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

精彩图集

赞助商链接