HKEY_LOCAL_MACHINE 접근권한 문제
- 프로그래밍/프로그래밍일반
- 2014. 1. 27. 16:19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | HKEY hkey; DWORD dwType = REG_SZ; DWORD size = 1024; LSTATUS lRet = 0; lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\InterBERA"), 0, KEY_ALL_ACCESS ,&hkey); if(lRet==ERROR_SUCCESS ) { lRet=RegQueryValueEx(hkey, key, 0,&dwType, (LPBYTE)val, &size ); if(lRet==ERROR_SUCCESS) { // 어쩌고 저쩌고 } } else { } RegCloseKey(hkey); return 0; |
작업하던중 이런 소스가 있다.
레지스트리중 HKEY_LOCAL_MACHINE을 접근해서 읽고 쓰기를 진행하려고한다.
하지만 실행을 해보면 읽기/쓰기가 제대로 안된다.
그래서 구글링해보니 한 실행파일에서 HKEY_LOCAL_MACHINE에 접근을 하기위해서는 각종 다양한 제약이 존재했다.
1.실행파일에서 로컬머신 레지스트리로로 접근을 하려면 일단 권한이 필요하다.
-> 비쥬얼 스튜디오에 manifest file 설정을 하던가 아니면 실행파일 우클릭후 관리자 권한으로 실행을 한다.
2.1번을 해도 안된다면 64비트 OS인지 체크를 해보자
-> 64비트 OS는 키도 64비트이기때문에 레지스트리 접근을 할때 옵션을 추가적으로 적어줘야한다. (KEY_WOW64_64KEY를 오픈시 옵션으로 넣어줘야함)
관련 링크 : http://msdn.microsoft.com/en-US/library/aa384129.aspx
2번은 서치해도 겁나 안나와서 삽질을 엄청하다가 MSDN에서 겨우 찾음 ㅠㅠ 하앜...
이 글을 공유하기