2010-07-05 7 views
5

저는 12 년 넘게 판매 해 온 VB6 앱을 가지고 있습니다. 때로는 앱을 실행하는 데 어려움을 겪는 사용자가 있습니다. 데이터 쓰기는/내 문서로 들어가기 때문에 설치 파일 (EXE 등)은 C : \ Program Files (또는 C : \ Program Files (x86))에 저장됩니다.UAC 가상화를 방지 하시겠습니까?

문제가 해결 되었는데도 응용 프로그램이 중지 된 것처럼 보이더라도 시작하고, 작업 관리자를 표시하고, 프로세스를보고, 내 응용 프로그램의 프로세스를 마우스 오른쪽 단추로 클릭하고, UAC 가상화를 선택 취소합니다. 그런 다음 설치를 복구하고 모두 정상입니다.

내 프로세스가 UAC 가상화에 포함되는 이유는 무엇이며 어떻게 이러한 현상이 발생하지 않도록합니까? 또한 InstallShield 2010 Professional을 사용하여 설치 프로그램을 만들었습니다. 설치 프로그램이나 응용 프로그램 자체와 관련이 있는지 확실하지 않습니다.

답변

9

가상화를 방지하려면 응용 프로그램에 매니페스트를 추가하십시오. asInvoker 또는 requireAdministrator라고해도 더 이상 가상화를 얻을 수 없습니다. 나는 응용 프로그램이 상승하지 않고 잘 작동 이후 asInvoker 당신을 위해 더 나은 것 같아요.

foo.exe.manifest를 exe와 같은 폴더에 넣거나 임베드 할 수 있습니다. 매니페스트를 4 바이트 길이로 만드는 것과 같은 까다로운 작업이 있습니다. This question은 임베딩에 대한 일부 세부적인 내용을 다룹니다.

+0

감사합니다. 이 매니페스트를 만드는 방법에 대한 링크가 있습니까? – Neal

+1

가장 간단한 형태로, yourexename.exe.manifest라는 XML 파일이며 yourexename.exe와 같은 폴더에 있습니다. 콘텐츠의 예는 http://csi-windows.com/toolkit/manifest-template를 참조하십시오. 'requestedPrivileges' 부분은 중요한 측면입니다. –

관련 문제