IT 알쓸신잡

Qt 에서 관리자 권한으로 실행되는 실행파일 만들기 본문

Development

Qt 에서 관리자 권한으로 실행되는 실행파일 만들기

솦트웰러 2023. 3. 8. 15:54
728x90
반응형

Qt에서 개발 후 실행 파일을 만들 때,

윈도우 OS의 경우 사용자에게 관리자 권한을 획득(UAC)하여 실행되도록 해야 할 때가 있습니다.

특히 Program Files/ 하위 경로에 설치가 되어 log나 config 파일을 생성할려고 하면 관리자 권한을 얻어야만 합니다.

 

그럼 실행파일이 관리자 권한을 얻으면서 실행되도록 하는 방법을 알아볼께요.

 

1. 프로젝트 명.pro 파일을 열도록 합니다.

 

2. 아래와 같이 관리자 권한에 대한 Manifest를 등록해줍니다.

CONFIG += embed_manifest_exe
QMAKE_LFLAGS +=  /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'true\'\"

 

3. 그럼 실행파일 아이콘에 방패 모양이 생기면서 관리자 권한을 획득하여 실행되도록 파일이 만들어집니다.

 

4. 하지만 그냥 실행하면 "서버에서 참조를 반환했습니다." 라는 에러 창을 띄우게 되죠.

이 문제는 실행파일에 응용프로그램 인증서를 발급받아 인증처리 작업을 하면 해결이 됩니다.

이건 배포와 관련된 부분인데 다음에 포스팅 하도록 하겠습니다.

 

상식적으로 생각해보면 사용자에게 관리자 권한을 달라고 요청하는 프로그램이 안정적인 프로그램임을 증명하여야 하기 때문에 마이크로소프트에 등록된 인증사를 통해 발급받은 응용프로그램 인증서가 실행파일에 포함되어 있다면 문제가 없겠죠.... 

 

5. 인증서 처리 후 실행하면 아래와 같이 UAC를 띄우면서 관리자 권한을 요청하는 창이 뜨면서 실행이 됩니다.

 

6. 개발 중에 테스트 진행 시에는 아래와 같이 변경 후 Build>run qmake 후 진행하시면 되며, 최종 배포시에는 위에 방식으로 스왑하여 실행파일을 만드시면 됩니다.

CONFIG += embed_manifest_exe
QMAKE_LFLAGS +=  /MANIFESTUAC:\"level=\'asInvoker\' uiAccess=\'false\'\"

 

728x90
반응형
Comments