我试图从注册表中检索一些值.以下是完整路径:[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");
}
}
Run Code Online (Sandbox Code Playgroud)
我试过调试,看起来我的缓冲区输出变量给了我一个奇怪的输出:
键值为:2554292错误为0
每次我再次运行代码时,我都会得到不同的值.我怎样才能获得真正的价值而不是另一个?
编辑:上面的帖子已被编辑,以提出一个不同的问题. …