C++ 控制RegEnumKey返回的键的顺序

C++ 控制RegEnumKey返回的键的顺序,c++,windows,winapi,registry,C++,Windows,Winapi,Registry,我希望创建一个注册表子项,最后由 根据API的MSDN文档 因为子键没有顺序,所以任何新的子键都将具有任意索引。这意味着函数可以按任何顺序返回子键 当使用API或任何其他API创建新的子键时,是否有方法控制他将获得的索引 是否可以更改现有注册表项的索引号 我希望创建一个注册表子项,它将由RegEnumKey最后返回 这是不可能实现的。您根本无法控制枚举顺序 无论你的问题是什么,你都需要找到一个不同的解决方案 1.使用RegCreateKeyEx或任何其他API创建新的子键时,是否有方法控制他将获

我希望创建一个注册表子项,最后由

根据API的MSDN文档

因为子键没有顺序,所以任何新的子键都将具有任意索引。这意味着函数可以按任何顺序返回子键

  • 当使用API或任何其他API创建新的子键时,是否有方法控制他将获得的索引
  • 是否可以更改现有注册表项的索引号
  • 我希望创建一个注册表子项,它将由RegEnumKey最后返回

    这是不可能实现的。您根本无法控制枚举顺序

    无论你的问题是什么,你都需要找到一个不同的解决方案

    1.使用RegCreateKeyEx或任何其他API创建新的子键时,是否有方法控制他将获得的索引

    没有

    2.是否可以更改现有注册表项的索引号

    没有

    您的文件报价中明确说明了原因:

    由于子键未排序,因此任何新子键都将具有任意索引。这意味着函数可以以任何顺序返回子键


    在API层,您无法控制或影响这一点。如果需要按特定顺序处理子项,则必须将子项检索到自己的列表中,然后根据需要对列表进行排序,然后再进行处理。

    这听起来不像是您试图解决的真正问题,更像是您提出的解决方案。您最终要完成什么?您不明白“按任何顺序”的哪一部分?即使您可以这样做,另一个应用程序可能会决定在同一个键内创建其“最后”子键,因此您的子键不再是最后一个。如果您需要将子键作为最后一个,请围绕
    RegEnumKey
    编写一个包装器来实现这一点(但是,您需要稍微识别您的子键)。如果希望钩住<代码> ReGeMeXix并隐藏某些子密钥,隐藏在中间的某个地方报告的情况不会比隐藏最后一个子密钥要困难得多(您只需枚举所有子密钥,决定哪些子密钥需要隐藏,并将适当的信息返回给调用方)。。另一个不正确的假设是注册表中的项具有索引。您可以依赖的只是枚举中的键具有唯一索引。因此,这些问题毫无意义。