ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RegOpenKeyEx 사용방법
    Programming/WINAPI 2007. 12. 28. 01:28
    RegOpenKeyEx
      - 지정된 레지스트리 키를 open합니다.

    LONG WINAPI RegOpenKeyEx(
      __in        HKEY hKey,
      __in_opt    LPCTSTR lpSubKey,
      __reserved  DWORD ulOptions,
      __in        REGSAM samDesired,
      __out       PHKEY phkResult
    );


    Parameters

    hKey
    오픈할 레지스트리 키의 핸들. RegCreateKeyEx 또는 RegOpenKeyEx 로 획득한 핸들이나
    기본적으로 정의되어 있는 키의 핸들(predefined keys)을 사용합니다.      
    HKEY_CLASSES_ROOT
    HKEY_CURRENT_USER
    HKEY_LOCAL_MACHINE
    HKEY_USERS
    lpSubKey

    hKey이하의 서브키 ( 필수는 아님 )
    NULL을 주는 경우 hKey값만을 사용하여 레지스트리 키를 오픈합니다.

    ulOptions

    현재는 사용하지 않습니다. 미래를 위해 예약된 인자입니다. 반드시 0 을 주어야 합니다.

    samDesired

    오픈할 키의 제어권한의 정도를 지정합니다.
    만약 함수가 실패하는경우, 낮은 권한을 가진 사용자가 높을권한을 요구하는 제어권한으로 키를 오픈하는것이 원인이 될 수 있습니다.
    여러가지 옵션값이 있으니 자세한 내용은 링크를 참조하세요
    Registry Key Security and Access Rights.
    그냥 귀찮으시면 KEY_ALL_ACCESS 로 주시면 됩니다. 모든 권한을 획득합니다.

    phkResult

    오픈된 키의 핸들
    만약 키가 predefined registry keys( 기본적으로 지정되어 있는 키들)이 아니면
    RegCloseKey 함수를
    호출하여 오픈된 키를 종료시켜줘야 합니다.

    Return Value

    성공시 ERROR_SUCCESS 를 리턴합니다.

    그리고 실패시에는 0 이 아닌값을 리턴하는데 에러코드는 Winerror.h 에 정의 되어 있습니다.


    요구사항

    Client Requires Windows Vista, Windows XP, or Windows 2000 Professional.
    Server Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server.
    Header

    Declared in Winreg.h; include Windows.h.

    Library

    Use Advapi32.lib.

    DLL

    Requires Advapi32.dll.

    Unicode

    Implemented as RegOpenKeyExW (Unicode) and RegOpenKeyExA (ANSI).



    간단한 사용예 )
    HKLM( HKEY_LOCAL_MACHINE ) 이하에 Software\Adobe 키를 오픈하고 싶다면..
    사용자 삽입 이미지


    #include <windows.h>

    void main()
    {
         HKEY key;
         if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Adobe", 0, KEY_ALL_ACCESS, &key)
            == ERROR_SUCCESS)
          {
                 // 키를 오픈하는데 성공했습니다.
                 // 이제 이 키를 이용해 레지스트리를 마음대로 ...
          }
          else
          {
                 // 키 오픈에 실패했네요....
          }
    }
    [프로그래밍/WIN32API] - RegCreateKeyEx 사용방법


Designed by Tistory.