RegEnumKey

【勇芳软件工作室】汉化HomePreviousNext

RegEnumKey函数枚举指定的打开注册表项的子项。该函数在每次调用时检索一个子项的名称。此函数用于与Windows 3.1版兼容。基于Win32的应用程序应使用RegEnumKeyEx功能。

LONG RegEnumKey(

HKEY 【的hKeyru-Latn】,//查询键的句柄
DWORD 【dwIndex】,//查询索引子项
LPTSTR 【lpName】,//子项名称缓冲区的地址
DWORD 【cbName】//子键缓冲区的大小
); 

参数

【的hKeyru-Latn】

标识当前打开的键或任何以下预定义保留句柄值:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

返回的密钥相对于【的hKeyru-Latn】标识的密钥。

【dwIndex】

指定要检索的子项的索引。对于第一次调用RegEnumKey函数,此值应该为零,然后增加以用于后续调用。

因为子项没有被排序,任何新的子项都将有一个任意的索引。这意味着该函数可以以任何顺序返回子项。

【lpName】

指向接收子项名称的缓冲区,包括终止空字符。此函数仅将子项的名称(而不是全键层次结构)复制到缓冲区。

【cbName】

指定【lpName】参数指向的缓冲区的字符(以字符为单位),以字符为单位。要确定所需的缓冲区大小,请使用RegQueryInfoKey功能确定由【的hKeyru-Latn】参数标识的密钥的最大子项的大小。最大所需缓冲区大小为(MAX_PATH + 1)个字符。

返回值

如果函数成功,则返回值为ERROR_SUCCESS。

如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。您可以使用带有FORMAT_MESSAGE_FROM_SYSTEM标志的FormatMessage函数来获取错误的一般描述。

备注

要枚举子项,应用程序最初应调用RegEnumKey参数设置为零的RegEnumKey函数。应用程序应该增加【dwIndex】参数并调用RegEnumKey函数,直到没有更多子项(直到函数返回ERROR_NO_MORE_ITEMS)为止。

应用程序还可以将【dwIndex】设置为对该函数的第一次调用的最后一个键的索引,并递减索引,直到枚举索引为0的子项为止。要检索最后一个子项的索引,请使用RegQueryInfoKey.

当一个应用程序正在使用RegEnumKey功能时,它不应该调用任何可能更改被查询的键的注册功能。

必须使用KEY_ENUMERATE_SUB_KEYS访问(KEY_READ访问包含KEY_ENUMERATE_SUB_KEYS访问)打开【的hKeyru-Latn】参数标识的密钥。要打开该键,请使用RegCreateKeyExRegOpenKeyEx功能。

也可以看看

RegCloseKey, RegCreateKeyEx, RegDeleteKey, RegEnumKeyEx, RegOpenKeyEx, RegQueryInfoKey, RegQueryValue