posted by 초식사자 2011.07.04 12:54

-인자로 전달된 레지스트리 키의 하위 키와 값들을 출력한다.
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
파일 탐색하기  (0) 2011.07.04
호스트 IP 주소 얻기  (0) 2011.07.04

댓글을 달아 주세요