RegDeleteKey是用来删除一个注册表键值,在计算机注册列表里能找到。
RegDeleteKey是用来删除一个注册表键值,在计算机注册列表里能找到。
RegDeleteKey
功能:用来删除一个注册表键值。
VB声明
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
删除现有项下方一个指定的子项
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或者标准项名之一
lpSubKey String,要删除项的名字。这个项的所有子
VC函数原型
LONG WINAPI RegDeleteKey(
__in HKEY hKey,
__in LPCTSTR lpSubKey
);
参数:
hKey
注册表打开的键值的句柄。删除的键值必须是拥有访问权限的。如需详细信息,请参阅注册表项的安全和访问权限。
可以使用下列的常量:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpsubkey
被删除的键值名称。它必须是hkey的一个子项,但它并不能有子项。此参数不能为空。
键值的名称不区分大小写。
函数仅删除最后一层子键以及下面的全部键值项。比如在“HKEY_LOCAL_MACHINEKey1Key2Key3”子键存在的情况下,当hKey指定为HKEY_LOCAL_MACHINE,lpSubKey指向“Key1Key2Key3”的时候,函数仅删除Key3子键,不会连同Key2,Key1全部删除。但如果Key3子键下有键值项的话,这些键值项会被一起删除。 如果要删除的子键下还存在下一层子键,比如上例中的Key3子键下还存在Key4子键,那么对Key3子键进行删除时,Windows 9x和Windows NT系统的做法是不同的:在Windows 9x中,Key3子键本身、Key3子键下所有的键值项和下层子键(包括上面举例的Key4)会被全部删除;而在Windows NT中,只有在不存在下层子键的情况下删除才能成功,如果Key3子键下还存在Key4子键,那么对Key3子键的删除是不会成功的。
应用程序不能直接在HKEY_LOCAL_MACHINE根键下面创建和删除子键,只能在下一层由系统定义的子键下进行操作,如果要保存配置信息的话,用户应用程序一般在HKEY_LOCAL_MACHINESOFTWARE子键下再创建自己的子键,然后将键值项保存在自己的子键中。
如需详细信息,请参阅注册表元素的大小限制。
返回值
如果函数成功,返回值是ERROR_SUCCESS。
如果函数失败,返回值是非零错误代码定义在 Winerror.h。获得一个通用的描述错误,您可以使用FormatMessage 函数的 format_message_from_system 标志。
言论
删除的键值不能取消,直至最后处理它被关闭。
被删除的键值不能有子项。删除的一个键值和所有其子项,您需要枚举子项,并单独删除他们。删除键递归,使用 RegDeleteTree 或 SHDeleteKey 函数。