Я хочу перечислить имя ключа.но.здесь что-то не так.это не возвращает все имя.я проверяю subKeys, он возвращает всего 12 ключей.когда цикл в RegEnumKeyExW , он возвращает только 3 имени, а не 12 имен.он возвращает только 1,2 и 5 имени ключа
в ключе HKEY_CURRENT_USER .Есть 12 Ключи.
AppEvents
Консоль
Панель управления
Окружающая среда
EUDC
Персоны
Раскладка клавиатуры
Сеть
Принтеры
Программное обеспечение
Система
Летучая среда
Этот код
HKEY hKey;
if (RegOpenKeyExW(HKEY_CURRENT_USER, NULL, 0, KEY_READ, &hKey) == ERROR_SUCCESS)
{
DWORD subKeys;
FILETIME ftLastWriteTime;
if (RegQueryInfoKeyW(hKey, NULL, NULL, NULL, &subKeys, NULL, NULL, NULL, NULL, NULL, NULL, &ftLastWriteTime) == ERROR_SUCCESS)
{
wchar_t keyName[MAX_KEY_LENGTH];
DWORD cbName;
for (DWORD i = 0; i < subKeys; i++)
{
if (RegEnumKeyExW(hKey, i, keyName, &cbName, NULL, NULL, NULL, &ftLastWriteTime) == ERROR_SUCCESS)
{
std::wcout << keyName << std::endl;
}
else
{
std::cout << GetLastError() << std::endl;
}
}
}
else
{
std::cout << GetLastError() << std::endl;
}
}
else
{
std::cout << GetLastError() << std::endl;
}