본문 바로가기
프로그래밍/C·C++

레지스트리 값 출력하기

by ITPro 2011. 7. 4.

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

#include <windows.h>
#include <stdio.h>

#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;
}


반응형

'프로그래밍 > C·C++' 카테고리의 다른 글

프로세스 생성하기  (0) 2011.07.04
레지스트리 삭제하기  (0) 2011.07.04
윈도우 서비스 제거하기  (0) 2011.07.04
파일 탐색하기  (0) 2011.07.04
호스트 IP 주소 얻기  (0) 2011.07.04

바로가기