none
윈도우7에서 RegOpenKeyEx() => ERROR_ACCESS_DENIED 일때..해결방법 좀 알려주세요. RRS feed

  • 질문

  • lnRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szSubKey, 0L,KEY_WRITE|KEY_READ, &hKey);

    반환값이 5(ERROR_ACCESS_DENIED )

    xp 에서는 잘되는데 7에서는 반환값이 거부가 나오네요.

    어떻게 해결을 해야하는지 좀 알려주세요.

    2012년 5월 26일 토요일 오전 4:49

모든 응답

  • 레지스트리에서 "HKEY_LOCAL_MACHINE" 대부분의 영역이 일반 사용자 권한으로는 KEY_WRITE 할 수 없습니다. UAC가 적용된 Vista 이상부터 그런 제약이 있는데, 이를 해결하려면 해당 응용 프로그램을 '관리자 권한'으로 실행해야 합니다.

    아니면, 해당 코드만 실행하는 것을 따로 분리해서 exe 로 만든 후 '관리자 권한'으로 실행하게 하든가.

    또는, 대부분의 설치 프로그램들이 '관리자 권한'으로 승격되어 실행되므로, 설치시에 변경시켜도 무방한 작업이라면 그 때 해주어도 됩니다.

    아래는 관리자 권한 승격과 관련한 다양한 글들입니다. (닷넷을 대상으로 하고 있지만, 전체적인 내용은 C++ 에도 적용됩니다.)

    ClickOnce - 관리자 권한 상승하는 방법
    ; http://www.sysnet.pe.kr/2/0/950

    관리자 권한이 필요한 작업을 COM+ 에 대행
    ; http://www.sysnet.pe.kr/2/0/1290



    2012년 5월 26일 토요일 오전 9:06