QT以管理员身份运行

以下配置后,QT在QT Creator调试时,或者生成的.exe程序,都将会默认以管理员身份运行。

一、MSVC编译器

1、在Pro文件中添加以下代码:

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

重启QT软件,以管理员权限打开QT软件,重新构建一下,如果不成功,这样再重新编译时就没有问题了!

2、但是会有个后遗症,会发现我们在debug下,无法进行调试了,会弹出"The CDB process terminated"的错误:

这是因为我们的QtCreator没有以管理员权限运行,却对管理员权限的程序进行调试,所以报错,具体为什么,我也不知道。

当重新以管理员权限运行QtCreator,并进行调试,就不会报错了。

然鹅,每次启动QtCreator都以管理员权限太麻烦,换作不清楚的人,启动这个工程,一定是一脸懵逼。

所以我们稍微修改下pro文件,让程序仅仅在release模式下,才以管理员权限运行。

CONFIG(release, debug|release){

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

}

二、MinGW编译器

1、先创建一个.manifest文件,放到Pro同级目录下,命名如:getAdmin.manifest,文件内容如下:

  
  
	  
		  
			  
				  
			  
		  
	  

2、再创建一个.rc文件,也放在Pro文件同级目录下,命名如:getAdmin.rc,文件内容如下:

1 24 DISCARDABLE "getAdmin.manifest"

3、然后在Pro文件中再附加如下代码:

RC_FILE = getAdmin.rc

重启QT软件,以管理员权限打开QT软件,重新构建一下,如果不成功,这样再重新编译时就没有问题了!

注意:以后需要以管理员身份启动QT!否则可能会有下面的异常:

QT以管理员身份运行_第1张图片 

你可能感兴趣的:(qt,开发语言)