Qt 程序管理员权限的几种方法

一、项目中配置

1. mingw编译器

在pro工程文件中加入

RC_FILE=main.rc

rc文件,之前一篇博客中为程序增加图标也用到此文件,没错!可以为程序添加icon 

main.rc

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

第一行是为程序添加icon的; 

第二行是增加权限,注意是manifest,不是mainfest。之前我看错了~ 

下面看看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>

OK,这样就行了。看网上有些朋友说此方法行不通,可能是编译器不一样吧。在VS编译器上这样用会报错,VS编译器请看第二种方法。

2.VS编译器 

在QT工程文件pro中加入QMAKE_LFLAGS的增加配置:

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

3.CMAKE, 放在add_executable的后面

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

二、使用添加管理员权限的小工具

Qt 程序管理员权限的几种方法

/// permission.bat

start cmd /k " mt.exe -manifest "RunningPermission" -outputresource:"iphelper.exe";#1 &&taskkill /f /t /im cmd.exe"

 工具包下载连接:=》

 

 

上一篇:Android java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion


下一篇:java-Android-如何在按下HOME时取消所有活动?