2013-11-04 2 views
2

C++로 작성되고 콘솔 하위 시스템과 함께 컴파일되는 Windows 콘솔 응용 프로그램이 있지만 명령 줄에서 시작할 때 해당 콘솔을 다시 사용하지 않고 새 창을 엽니 다. 같은 콘솔 창.Windows 콘솔 응용 프로그램이 같은 콘솔 대신 새 콘솔에서 열림

실행 파일이 실행하려면 관리자 권한이 필요한 매니페스트가있는 것 같습니다.

일부 키를 올바르게 읽을 수 있도록하기 위해 추가되었습니다.

이 문제를 어떻게 해결할 수 있습니까?

+1

언제든지 관리자 권한으로 실행해야한다는 내용의 매니페스트가 있습니까? 관리자 권한 명령 프롬프트에서 실행하면 동작이 변경됩니까? –

+0

어떻게 박쥐에서 exe를 실행합니까? 이름을 사용하거나 호출 명령을 사용합니까? – Raxvan

+0

네가 맞다.이 사람은 매니페스트로서 매니페스트를 운영한다. 이것은 가상화없이 HKLM을 읽는 데 필요했습니다. 동일한 실행 파일이 서비스로 실행되지만 콘솔 앱으로도 실행될 수 있습니다. 나는 HKLM에서 몇 가지 설정을 읽어야한다. 어쩌면 글을 쓸 수도있다. 이것이 없으면 HKLM에서 아무 것도 읽지 않아서 놀랐습니다. – sorin

답변

3

응용 프로그램 매니페스트에 requestedExecutionLevel (requireAdministrator)을 지정하지 않아도 가상화하지 않고 HKLM에서 읽을 수 있습니다.

HKLM에서 읽으려면 승강 할 필요가 없습니다. 그리고 프로세스에 requestedExecutionLevel을 지정하는 응용 프로그램 매니페스트가있는 한 가상화되지 않습니다. 따라서 결론은 requestedExecutionLevelasInvoker으로 지정해야한다는 것입니다.

레지스트리 가상화에 대한 자세한 내용은 MSDN docs에서 확인할 수 있습니다.

관련 문제