Qt编译时加入管理员权限UAC配置

 Qt编译时加入管理员权限UAC配置

1.使用微软 VS 编译器的配置

Qt Creator (qmake) 的.pro 里加入编译配置

QMAKE_LFLAGS +=/MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"

 

2.使用mingw编译器的配置

Qt Creator (qmake) 的.pro 里加入编译配置

 

RC_FILE= main.rc

.rc 文件除了加入应用程序icon图标资源声明,还可以加入管理员权限要求声明

IDI_ICON1               ICON     DISCARDABLE     "./res/logo.ico"
1 24 uac.manifest

第一行是在程序中添加图标,资源路径为”./res/logo.ico”;

第二行是增加权限声明,文件名为uac.manifest

继续添加uac.manifest文件的信息

<?xml version='1.0' encoding='UTF-8' standalone='yes'?> 
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
<security> 
<requestedPrivileges> <requestedExecutionLevel level='requireAdministrator' uiAccess='false'/> </requestedPrivileges> 
</security>
</trustInfo>
</assembly>

3.使用CMAKE的配置

在 add_executable之后加入

set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS
    "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\"/SUBSYSTEM:WINDOWS")

 

 

吴川斌

吴川斌

Leave a Reply