gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 01:47:31 25 4
gpt4 key购买 nike

我无法枚举 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 中输出 key ?谢谢。

最佳答案

您将错误的 HKEY 传递给 RegEnumKeyEx()。您正在传递 HKLM 根,但您需要传递 RegOpenKeyEx() 返回的 HKEY。换句话说,改变这个:

RegEnumKeyEx(HKEY_LOCAL_MACHINE, ...)

对此:

RegEnumKeyEx(hKey, ...)

关于c++ - 在 C++ 中枚举 HKEY_LOCAL_MACHINE\SOFTWARE 中的注册表子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19122830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com