레지스트리 값 출력하기

-인자로 전달된 레지스트리 키의 하위 키와 값들을 출력한다.
ex:)PrintReg(HKEY_LOCAL_MACHINE,”\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run“);
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 하위키와 값들을 출력한다.

#include
#include

#define MAX_KEY_SIZE 512
#define MAX_VALUE_SIZE 512

BOOL PrintReg(HKEY root,char* key){
        HKEY hkey;
        TCHAR key[MAX_KEY_SIZE]=””;
        TCHAR value[MAX_VALUE_SIZE]=””;
        DWORD keysize=MAX_KEY_SIZE;
        DWORD valuesize=MAX_VALUE_SIZE;
        int i=0;
        int result=0;

        //레지스트리 오픈
        result=RegOpenKeyEx(root,key,NULL,KEY_ALL_ACCESS,&hkey);

        if(result != ERROR_SUCCESS){
                puts(“Registry Open Failed!!”);
                return FALSE;
        }

        for(i=0,result = ERROR_SUCCESS ; result == ERROR_SUCCESS ;i++){
                keysize=MAX_KEY_SIZE;
                valuesize=MAX_VALUE_SIZE;

                 //레지스트리 정보 저장
                RegEnumValue(hkey,i,key,&keysize,NULL,NULL,
                                        (unsigned char*)value,&valuesize);

                 //레지스트리 키, 값 출력
                printf(“%s : %s”,key,value);
        }

        RegCloseKey(hkey);;

        return TRUE;
}

바로가기