Я пытаюсь получить некоторые значения из реестра.
Вот полный путь:
[HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Themes]
"ThemeChangesMousePointers" = 0x00000001 (1)
А вот и мой код:
HKEY hKey;
DWORD dwDisp = REG_DWORD;
DWORD dwType;
DWORD dwSize = sizeof(DWORD);
DWORD dwValue = 0;
DWORD dwReturn;
char buffer[255] = {0};
//char* buffer;
//DWORD buffer = 0;
DWORD dwBufSize = sizeof(buffer);
if( RegOpenKey(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes")
,&hKey) == ERROR_SUCCESS)
{
dwType = REG_DWORD;
if( RegQueryValueEx(hKey,_T("ThemeChangesMousePointers"),0, &dwType, (LPBYTE) buffer, &dwBufSize) == ERROR_SUCCESS)
{
printf("Key value is: %d \n", buffer);
printf("GetLastError reports %d \n", GetLastError());
}
else
{
printf("Cannot query for key value \n");
}
}
Я попытался отладить, и похоже, что моя выходная переменная буфера дает мне странный вывод:
Значение ключа: 2554292
Ошибка 0
Каждый раз, когда я снова запускаю код, я получаю разные значения. Как я могу получить реальное значение, а не другое?
РЕДАКТИРОВАТЬ: Сообщение выше было отредактировано, чтобы задать другой вопрос.
Кроме того, если этого кода недостаточно, я могу добавить больше.