본문 바로가기
Programming/Tips(C++,C#)

윈도우레지스트리 건드리기

by 곰네Zip 2008. 6. 12.

우선.. 윈도우 시작프로그램에서 실행할 프로그램에관련된 레지스트리..

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

이곳에 모든 정보가 저장되어있다.. (윈도 부팅시 실행될 프로그램관련정보들이..)

이거만 알면...

레지스트리 읽기/쓰기 함수를 통해서 건드리면 될거같다..

int ReadRegVal(char *reg_path, char *key, char *val, int val_buf_size ) // reg읽기

{

    HKEY phk=0;

    DWORD nEC = REG_BINARY;                                         // 바이너리모드로 읽기

    DWORD size = val_buf_size;                                            // 레지스트리읽기시 버퍼크기

  

    memset(val,0,val_buf_size);                                              //mem clear

  

    RegOpenKey(HKEY_LOCAL_MACHINE,reg_path,&phk);

    RegQueryValueEx(phk, key, NULL,&nEC, (LPBYTE)val, &size );  //읽기 값은 val에 저장

   //val은 걍 맘편히 타입케스팅 바로 하셔서 쓰셔욧....

    RegCloseKey(phk);


    return 0;

}


int WriteRegVal(char *reg_path, char *key, char *val)          //reg write

{

    HKEY phk=0;

    long nRet;


    RegCreateKey(HKEY_LOCAL_MACHINE, reg_path, &phk);

    nRet = RegSetValueEx(phk, key, 0, REG_SZ, (LPBYTE)val, strlen(val));

  

    RegCloseKey(phk);

  

    if(ERROR_SUCCESS == nRet)   return 0;


    return 1;

}



사용법:

레지스터 쓰기.

WriteRegVal("SOFTWARE\\Microsoft\\Windows", "Windows", "5.2" );

반응형

댓글