RegEnumKeyEx

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

RegEnumKeyEx函数枚举指定的打开注册表项的子项。该函数在每次调用时检索有关一个子项的信息。与RegEnumKey功能不同,RegEnumKeyEx检索子项的类名和上次修改的时间。

LONG RegEnumKeyEx(

HKEY 【的hKeyru-Latn】,//键入枚举的句柄
DWORD 【dwIndex】,//枚举子项的索引
LPTSTR 【lpName】,//子项名称缓冲区的地址
LPDWORD 【lpcbName】,//子地址缓冲区的大小
LPDWORD 【lpReserved】,//保留
LPTSTR 【lpClass】,//类的字符串缓冲区的地址
LPDWORD 【lpcbClass】,//类缓冲区大小的地址
PFILETIME 【lpftLastWriteTime】//地址时关键上次写入
); 

参数

【的hKeyru-Latn】

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

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

枚举的键是由【的hKeyru-Latn】标识的键的子键。

【dwIndex】

指定要检索的子项的索引。对于第一次调用RegEnumKeyEx函数,此参数应为零,然后为后续调用递增。

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

【lpName】

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

【lpcbName】

指向一个变量,指定由【lpName】参数指定的缓冲区的大小(以字符为单位)。这个大小应该包括终止空字符。当函数返回时,【lpcbName】指向的变量包含缓冲区中存储的字符数。返回的计数不包括终止空字符。

【lpReserved】

Reserved; must be NULL.

【lpClass】

指向函数返回时包含枚举子项的类的缓冲区。如果不需要该类,则该参数可以为NULL。

【lpcbClass】

指向一个变量,指定由【lpClass】参数指定的缓冲区的大小(以字符为单位)。大小应包括终止空字符。当函数返回时,【lpcbClass】包含缓冲区中存储的字符数。返回的计数不包括终止空字符。只有【lpClass】为NULL时,此参数才可以为NULL。

【lpftLastWriteTime】

指向一个变量,它接收上次写入的枚举子项的时间。

返回值

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

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

备注

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

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

当一个应用程序正在使用RegEnumKeyEx函数时,它不应该调用任何可能更改被枚举的键的注册函数。

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

也可以看看

RegCreateKeyEx, RegDeleteKey, RegEnumKey, RegOpenKeyEx, RegQueryInfoKey