大家好,
我尝试读取从注册表值,我试试这个代码
注
基于Windows7的
使用工具MSVC的2010
#include <windows.h>
#include <malloc.h>
#include <stdio.h>
#define TOTALBYTES 8192
void main()
{
DWORD BufferSize = TOTALBYTES;
DWORD cbData;
DWORD dwRet;
HKEY result;
PPERF_DATA_BLOCK PerfData = (PPERF_DATA_BLOCK) malloc( BufferSize );
dwRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\\"),
0,
KEY_ALL_ACCESS,
&result
);
if( dwRet == ERROR_SUCCESS )
printf("\n\RegOpenKeyEx result : %d, function successed\n", &result);
else printf("\nRegOpenKeyEx failed (%d)\n", dwRet);
dwRet = RegQueryValueEx( HKEY_LOCAL_MACHINE,
TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\\ MHz"),
NULL,
NULL,
(LPBYTE) PerfData,
&cbData );
if( dwRet == ERROR_SUCCESS )
printf("\n\nRegQueryValueEx result( MHz) %d, function successed\n", &cbData);
else printf("\nRegQueryValueEx( MHz) failed (%d)\n", dwRet);
dwRet = RegQueryValueEx( HKEY_LOCAL_MACHINE,
TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"),
NULL,
NULL,
(LPBYTE) PerfData,
&cbData);
if( dwRet == ERROR_SUCCESS )
printf("\n\nRegQueryValueEx result %d, function successed\n", &cbData);
else printf("\nRegQueryValueEx failed (%d)\n", dwRet);
dwRet = RegCloseKey(result);
if( dwRet == ERROR_SUCCESS )
printf("\n\nRegCloseKey successed\n");
else printf("\nRegCloseKey failed (%d)\n", dwRet);
system("pause");
}
两个路径函数RegQueryValueEx()为什么不工作,因为它RegOpenKeyEx()和RegCloseKey()吗?