Programming/WINAPI
RegOpenKeyEx 사용방법
smok95
2007. 12. 28. 01:28
반응형
RegOpenKeyEx
- 지정된 레지스트리 키를 open합니다.
간단한 사용예 )
HKLM( HKEY_LOCAL_MACHINE ) 이하에 Software\Adobe 키를 오픈하고 싶다면..
- 지정된 레지스트리 키를 open합니다.
LONG WINAPI RegOpenKeyEx(
__in HKEY hKey,
__in_opt LPCTSTR lpSubKey,
__reserved DWORD ulOptions,
__in REGSAM samDesired,
__out PHKEY phkResult
);
__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 사용방법void main()
{
HKEY key;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Adobe", 0, KEY_ALL_ACCESS, &key)
== ERROR_SUCCESS)
{
// 키를 오픈하는데 성공했습니다.
// 이제 이 키를 이용해 레지스트리를 마음대로 ...
}
else
{
// 키 오픈에 실패했네요....
}
}
반응형