通过注册表递归的最佳方法(c++)



长话短说,我试图在二进制。dat文件中创建两个注册表组的差异。

使用RegLoadAppKey挂载hive后,递归遍历所有键及其值的最佳方法是什么?

我看了看RegEnumKeyEx,但这只允许我通过RegLoadAppKey返回的根节点的子键迭代,并且不(据我所知)返回任何类型的句柄到子键。

也是我使用RegLoadAppKey的原因是因为这个小应用程序需要能够在没有管理员权限的情况下运行。

不要让人扫兴

来自MSDN文档上的RegLoadAppKeyhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms724886 (v = vs.85) . aspx

不像RegLoadKey, RegLoadAppKey不加载hiveHKEY_LOCAL_MACHINE或HKEY_USERS。相反,蜂巢被加载在不能枚举的特殊根。因此,没有办法枚举当前由RegLoadAppKey

加载的蜂巢

此外,您可能会遇到一些您试图避免的安全设置的障碍

hive中的所有key必须具有相同的安全描述符,否则函数将失败。此安全描述符必须授予调用方获得samDesired参数指定的访问权限函数将失败。不能使用RegSetKeySecurity功能

相关内容

最新更新