在C ++中枚举HKEY_LOCAL_MACHINE \ SOFTWARE中的注册表子项

步行

我在枚举HKEY_LOCAL_MACHINE \ SOFTWARE的子项时遇到麻烦,我只能获得HKEY_LOCAL_MACHINE上的子项。

WCHAR Temp[255];
DWORD TMP = 255;
HKEY hKey;
int count = 0;
long regError;

...

regError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\", NULL, KEY_ENUMERATE_SUB_KEYS, &hKey);
if (regError == ERROR_SUCCESS){
    file<<"Key opened!\nSubkeys of HKEY_LOCAL_MACHINE\\SOFTWARE:\n\n";
    while ((regError = RegEnumKeyEx(HKEY_LOCAL_MACHINE, count, Temp, &TMP, NULL, NULL, NULL, NULL)) == ERROR_SUCCESS){
        TMP = sizeof (Temp);
        count++;
        file<<count<<". "<<Temp<<std::endl;
    }
    if (regError == ERROR_NO_MORE_ITEMS) file<<"Done.";
    else file << std::endl <<"RegEnumKeyEx error!";
}
else file << std::endl <<"RegOpenKeyEx error!";

RegCloseKey(hKey);

这是我的文件:

Key opened!
Subkeys of HKEY_LOCAL_MACHINE\SOFTWARE:

1. BCD00000000
2. DRIVERS
3. HARDWARE
4. SAM
5. SECURITY
6. SOFTWARE
7. SYSTEM
Done.

如何在HKEY_LOCAL_MACHINE \ SOFTWARE而不是HKLM中输出键?谢谢。

雷米·勒博

您将错误传递HKEYRegEnumKeyEx()你逝去的HKLM根源,但你需要传递的HKEYRegOpenKeyEx()回报。换句话说,更改此:

RegEnumKeyEx(HKEY_LOCAL_MACHINE, ...)

对此:

RegEnumKeyEx(hKey, ...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列出和删除C#中的注册表子项

来自分类Dev

从注册表HKEY_LOCAL_MACHINE删除密钥

来自分类Dev

从注册表HKEY_LOCAL_MACHINE删除密钥

来自分类Dev

无法使用UAC从Excel在Hkey_Local_Machine中创建注册表项

来自分类Dev

我怎么知道在HKEY_LOCAL_MACHINE中创建注册表项的用户名

来自分类Dev

遍历注册表并获取所有子项和C#中RegistryKey中的值

来自分类Dev

在注册表子项中搜索值

来自分类Dev

为什么在Windows 7中找不到HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ Installer

来自分类Dev

在C中更改注册表值

来自分类Dev

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 不断被覆盖

来自分类Dev

无法在注册表中查看certian子项

来自分类Dev

C ++-从注册表读取值中获取空值

来自分类Dev

C#如何从注册表中读取MultiString

来自分类Dev

在C#中删除单个注册表值

来自分类Dev

2020年5月10日Windows中HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FeatureManagement \ Overrides \ 4 \ Hive的用途

来自分类Dev

无法通过系统注册表中的递归打印子项的子项

来自分类Dev

什么是注册表中的“枚举子项”和“通知”权限?

来自分类Dev

如何在 C++ 中实现“注册表模式”,使用单个注册表实现多个接口

来自分类Dev

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ MachineGuid是否唯一?

来自分类Dev

C#获取注册表子项的值

来自分类Dev

注册表子项不可见?C#

来自分类Dev

Windows中的64位和32位注册表问题(在C#中编程)

来自分类Dev

无法读取C ++中的注册表项

来自分类Dev

无法读取C ++中的注册表项

来自分类Dev

如何在C#中通过用户交互运行注册表文件

来自分类Dev

在C#中访问模拟用户的HKCU注册表配置单元

来自分类Dev

不使用CLSID和C中的注册表获取COM对象的DLL文件

来自分类Dev

试图在注册表中创建一个值-C ++-RegSetValueEx

来自分类Dev

C ++:试图创建一个运行键,我得到的只是注册表中的汉字。

Related 相关文章

  1. 1

    列出和删除C#中的注册表子项

  2. 2

    从注册表HKEY_LOCAL_MACHINE删除密钥

  3. 3

    从注册表HKEY_LOCAL_MACHINE删除密钥

  4. 4

    无法使用UAC从Excel在Hkey_Local_Machine中创建注册表项

  5. 5

    我怎么知道在HKEY_LOCAL_MACHINE中创建注册表项的用户名

  6. 6

    遍历注册表并获取所有子项和C#中RegistryKey中的值

  7. 7

    在注册表子项中搜索值

  8. 8

    为什么在Windows 7中找不到HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ Installer

  9. 9

    在C中更改注册表值

  10. 10

    HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 不断被覆盖

  11. 11

    无法在注册表中查看certian子项

  12. 12

    C ++-从注册表读取值中获取空值

  13. 13

    C#如何从注册表中读取MultiString

  14. 14

    在C#中删除单个注册表值

  15. 15

    2020年5月10日Windows中HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FeatureManagement \ Overrides \ 4 \ Hive的用途

  16. 16

    无法通过系统注册表中的递归打印子项的子项

  17. 17

    什么是注册表中的“枚举子项”和“通知”权限?

  18. 18

    如何在 C++ 中实现“注册表模式”,使用单个注册表实现多个接口

  19. 19

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ MachineGuid是否唯一?

  20. 20

    C#获取注册表子项的值

  21. 21

    注册表子项不可见?C#

  22. 22

    Windows中的64位和32位注册表问题(在C#中编程)

  23. 23

    无法读取C ++中的注册表项

  24. 24

    无法读取C ++中的注册表项

  25. 25

    如何在C#中通过用户交互运行注册表文件

  26. 26

    在C#中访问模拟用户的HKCU注册表配置单元

  27. 27

    不使用CLSID和C中的注册表获取COM对象的DLL文件

  28. 28

    试图在注册表中创建一个值-C ++-RegSetValueEx

  29. 29

    C ++:试图创建一个运行键,我得到的只是注册表中的汉字。

热门标签

归档