none
ERROR_SUCCES값을 반환하는 데에도 불구하고 레지스트리에 변수가 써지지 않습니다. RRS feed

  • 질문

  • HKEY hKey = NULL;
    if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce"), 0, KEY_WRITE, &hKey)) {
    	TCHAR path[MAX_PATH];
    	GetModuleFileName (NULL, path, MAX_PATH);
    	HRESULT res = RegSetValueEx(hKey, _T("My_Program"), 0, REG_SZ, (LPBYTE)path, _tcslen(path) + sizeof(*path));
    	res = RegFlushKey(hKey);
    	res = RegCloseKey(hKey);
    }

    딱 보기에는 문제가 없어 보입니다.

    실제로도 모든 함수가 ERROR_SUCCESS를 반환하였습니다.

    그런데 어떤 컴퓨터에서는 (똑같은 운영체제, 버전임에도 불구하고) 레지스트리가 써지는데, 다른 곳에서는 써지질 않습니다.

    또 제 컴퓨터에서도 계속 값이 보이지 않더라고요.

    어떻게 해야 이 문제를 해결할 수 있을까요?


    Jin-oh on



    2012년 3월 25일 일요일 오전 11:45

답변

  • 만들어진 프로그램의 실행파일을 우클릭하셔서 "관리자 권한으로 실행" 이라는 항목으로 실행하셔도 동일하게
    않되는 사황인가요?

    "관리자 권한으로 실행" 이라는 항목으로 정상적으로 된다면 "사용자 계정 컨트롤" 관련 문제이기 때문에
    자신의 코드에 "사용자 계정 컨트롤"과 관련된 코드를 추가하셔야 합니다.

    2012년 3월 26일 월요일 오전 1:08
    중재자
  • 오늘 저는

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce 에 씌여지는 것을 확인하였습니다.

    64-bit OS에서는 32-bit 프로그램이 Wow6432Node 에 써지도록 만들어 놓은 것 같군요.

    저는 그것도 모르고... ㅠㅠ

    하여튼 답변 감사하고요, 관리자 권한 때문에 생긴 것은 아니었습니다 ^^

    즐거운 하루 보내세요.


    Jin-oh on

    2012년 4월 12일 목요일 오전 7:48

모든 응답

  • HKEY_CURRENT_USER 는 작동하지만 HKEY_LOCAL_MACHINE 은 접근이 되지 않는다는 것을 확인하였습니다.


    Jin-oh on

    2012년 3월 25일 일요일 오후 12:11
  • 만들어진 프로그램의 실행파일을 우클릭하셔서 "관리자 권한으로 실행" 이라는 항목으로 실행하셔도 동일하게
    않되는 사황인가요?

    "관리자 권한으로 실행" 이라는 항목으로 정상적으로 된다면 "사용자 계정 컨트롤" 관련 문제이기 때문에
    자신의 코드에 "사용자 계정 컨트롤"과 관련된 코드를 추가하셔야 합니다.

    2012년 3월 26일 월요일 오전 1:08
    중재자
  • 안녕하십니까? 초등학생이야 님,
    Microsoft MSDN의Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 ”ERROR_SUCCES값을 반환하는 데에도 불구하고 레지스트리에 변수가 써지지 않습니다.”에 대해 답변드리겠습니다.

    tipsware님이 좋은 답변 해주셨습니다.
    제 생각에도 권한문제인것으로 보여집니다.
    우클릭 -> 관리자권한 으로 실행을 시도하시거나 권한상승된 menifest을 이용하시는것이 좋을 것 같습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.
     

    2012년 3월 26일 월요일 오전 2:59
    중재자
  • 관리자 권한으로 실행하여도 마찬가지입니다. UAC 에서 requestedExecutionLevel 을 requireAdministrator 로 하여도 전혀 수정이 되지 않는 것처럼 보입니다.

    제 생각에는 Windows 7이 설치 프로그램 이외의 프로그램이 HKEY_LOCAL_MACHINE 나 하위 키에 대한 수정을 막고 있는 것이라고 생각합니다만, 여러분 생각은 어떻습니까?


    Jin-oh on


    2012년 3월 26일 월요일 오전 8:57
  • 오늘 저는

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce 에 씌여지는 것을 확인하였습니다.

    64-bit OS에서는 32-bit 프로그램이 Wow6432Node 에 써지도록 만들어 놓은 것 같군요.

    저는 그것도 모르고... ㅠㅠ

    하여튼 답변 감사하고요, 관리자 권한 때문에 생긴 것은 아니었습니다 ^^

    즐거운 하루 보내세요.


    Jin-oh on

    2012년 4월 12일 목요일 오전 7:48