내 프로그램이 Vista에서 실행하기 위해 권한을 요청하는 이유는 무엇입니까?
-
01-07-2019 - |
문제
방금 VS 2008을 사용하여 VS C++ 6.0 프로그램을 만들었습니다.응용 프로그램을 실행하거나 디버그하려고 하면 Vista에서 권한을 요청합니다.이 문제를 일으키는 프로그램의 구성 방식은 무엇입니까?프로그램이 빌드되고 C:\Dev의 하위 폴더에서 실행됩니다.
이 응답 문제에 대한 해결책으로 나에게는 의미가 없습니다.
해결책
가능성 1:
귀하의 프로그램은 매니페스트에 관리자 권한이 필요한 것으로 표시되어 있습니다.
가능성 2:
프로그램 이름은 setup.exe 또는 install.exe입니다. 이러한 프로그램 이름에는 항상 관리자 권한이 필요합니다.
이 수표를 보는 이유와 기타 가능성에 대한 자세한 설명 사용자 계정 제어 Technet 알아보기 기사
다른 팁
MVP는 사용자 폴더(예: c:\users\yourname\appdata 또는 해당 경로 아래)에서 코드와 프로젝트를 실행하는 것에 대해 이야기했습니다.
이 문제를 해결하려면 UAC를 비활성화하지 마십시오. 그렇지 않으면 UAC를 끄지 않는 한 응용 프로그램이 다른 컴퓨터에서 실행되지 않습니다.그것은 매우 나쁜 습관입니다.완벽한 세상에서 귀하의 애플리케이션은 사용자에게 높은 권한을 요청해야 합니다.
고마워요 수마.귀하의 응답은 지금까지 최고였으며 해결책을 찾는 데 도움이 되었습니다.나는 귀하의 첫 번째 제안으로 원인이 설명된다고 판단했습니다.파일 이름을 'setup'이라는 단어가 포함되지 않은 이름으로 바꾸는 것은 도움이 되지 않았습니다.
내가 착각했다는 것이 밝혀졌습니다.VS 2005와 VS 2008이 모두 설치되어 있고 이전 .dsw 파일을 열려고 했을 때 2005년이 실행되어 프로젝트를 업그레이드하라는 제안을 받았습니다.2005년에는 "assemblies" 태그가 포함된 단 한 줄의 매니페스트를 만든 것으로 보입니다.VS 2008을 사용하여 프로젝트를 업그레이드하면 더 광범위한 매니페스트 파일이 생성되었습니다.매니페스트 도구...입력 및 출력...매니페스트 포함 설정을 확인하여 매니페스트가 내 프로그램에 포함되고 있음을 확인했습니다.이 새로운 매니페스트에는 다음 데이터가 포함됩니다.
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
관리자가 아닌 경우 C:\Dev에 있는 프로그램을 실행할 권한이 없을 수도 있습니다.