Это функция:
Код: Выделить всё
BOOL RegistryPathExists(const WCHAR* fullPath) {
HKEY hKeyRoot;
WCHAR keyPath[MAX_PATH];
if (wcsncmp(fullPath, L"HKEY_LOCAL_MACHINE", 18) == 0) {
hKeyRoot = HKEY_LOCAL_MACHINE;
wcscpy_s(keyPath, fullPath + 19);
} else if (wcsncmp(fullPath, L"HKEY_CURRENT_USER", 17) == 0) {
hKeyRoot = HKEY_CURRENT_USER;
wcscpy_s(keyPath, fullPath + 18);
} else {
return false; // Unsupported root key
}
HKEY hKey;
LONG result = RegOpenKeyEx(hKeyRoot, keyPath, 0, KEY_READ, &hKey);
if (result == ERROR_SUCCESS) {
RegCloseKey(hKey);
return true;
} else {
return false;
}
}
Код: Выделить всё
ERROR_NO_MORE_FILESЕсть идеи, почему это работает для HKEY_LOCAL_MACHINE, но не работает для HKEY_CURRENT_USER?
Я' Я пытаюсь открыть HKEY_CURRENT_USER\SOFTWARE\TEST\VALUE и HKEY_LOCAL_MACHINE\SOFTWARE\TEST\VALUE, и я подтвердил, что учетная запись пользователя имеет необходимые разрешения для их чтения, проверив реестр.< /п>
Подробнее здесь: https://stackoverflow.com/questions/789 ... more-files