当前位置:C++技术网 > 资讯 > 注册表编程系列:4 删除注册表键

注册表编程系列:4 删除注册表键

更新时间:2015-06-24 20:59:27浏览次数:1+次

    要创建一个注册表键,请阅读《注册表编程系列--创建注册表键

    如果我们要删除一个注册表子键,我们就需要使用RegDeleteKey函数了。下面仔细讲解此函数的用法。

    Windows NT/2000/XP中。此函数只能删除没有子键的键,如果此键还有子键,则不能删除。如果要删键和这个键的所有子键,则需要递归枚举此键的所有子键,然后一个一个的删掉子键。要递归删除键,请使用SHDeleteKey函数。

LONG RegDeleteKey(
  HKEY hKey,         // 要删除的键的句柄
  LPCTSTR lpSubKey   // 子键名称
);


hKey
    当前打开的键的句柄,或者以下预定义的值中的一个:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT/2000/XP: HKEY_PERFORMANCE_DATA 

    lpSubKey这个参数指定的键必须是参数hKey的子键。

lpSubKey
    指向非空字符串的指针,此字符串是要删除的子键的名字。此参数不能为NULL。在Windows NT/2000/XP中,此参数对应的键,不能有子键。

返回值:成功则返回ERROR_SUCCESS。失败则返回非零的错误码。使用FormatMessage以FORMAT_MESSAGE_FROM_SYSTEM标志可以获得详细的错误描述信息。

附加说明:如果函数执行成功,函数会从注册表移除指定的键。包括键本身和键对应的值都被移除。

代码示例:

LONG RegDeleteKey(HKEY_LOCAL_MACHINE,_T("mykey"));

    此函数使用很简单,就不多描述。