-
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>[프로그래밍/WIN32API] - RegCreateKeyEx 사용방법
void main()
{
HKEY key;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Adobe", 0, KEY_ALL_ACCESS, &key)
== ERROR_SUCCESS)
{
// 키를 오픈하는데 성공했습니다.
// 이제 이 키를 이용해 레지스트리를 마음대로 ...
}
else
{
// 키 오픈에 실패했네요....
}
}반응형'Programming > WINAPI' 카테고리의 다른 글
레지스트리 키 보안 및 접근 권한 ( REGSAM ) (0) 2008.01.05 WinExec는 비스타에서는 치명적... (0) 2007.12.26 자기자신을 삭제하는 실행파일 만들기 (1) 2007.12.04