2010-03-29 2 views
1

레지스트리에 키를 쓰려고합니다. 그것은 Windows XP에서 작동하지만 Windows 7/Vista에서는 실패합니다."요청 된 레지스트리 액세스가 허용되지 않습니다." Windows 7/Vista에서

아래 코드는 "요청 된 레지스트리 액세스가 허용되지 않습니다"라는 설명이있는 보안 예외를 발생시킵니다.

RegistryKey regKey = 
    Registry.LocalMachine.OpenSubKey("SOFTWARE\\App_Name\\" + subKey, true); 

이것이 UAC 설정과 관련이 있다는 것을 알고 있지만 이상적인 해결 방법을 찾을 수 없습니다.

다른 프로세스를 포크하고 싶지 않고 자격 증명을 요청하지 않을 수도 있습니다. Windows XP에서와 같은 방식으로 작동하도록하십시오. 매니페스트 파일을 수정하고 requestedExecutionLevel 노드를 제거했습니다. 이것은 트릭을 할 것으로 보인다.

가능한 다른 해결 방법이 있습니까? "manifest"솔루션에 심각한 결함이 있습니까?

답변

1

전체 컴퓨터에 대한 전역 키에 쓸 수있는 권한이 없습니다. 현재 사용자 키 아래에 데이터를 저장할 수 있습니까? 관리자 권한이 필요하지 않습니다.

+0

처럼 CurrentUser하는 LocalMachine을 변경했습니다. 현재 컴퓨터의 모든 사용자가이 레지스트리 항목을 읽고 쓸 수 있어야합니다. – Trainee4Life

+0

그런 경우 응용 프로그램을 관리자 권한으로 실행해야합니다. – Giorgi

+0

참조 http://stackoverflow.com/questions/562350/requested-registry-access-is-not-allowed – CSharper

0

은 또한 당신과 같은 문제를했고 나도 실현이

RegistryKey regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\App_Name\\" + subKey, true); 
관련 문제