返回首页

大家好,

我尝试读取从注册表值,我试试这个代码

基于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()吗?

回答

评论会员:C 时间:2