windows--cmake与c++的使用教程(12)
1 概述
- 本文基于前文环境
本节目标:为项目增加链接选项:requireAdministrator (/level='requireAdministrator'), 用于增加管理员权限
2 目标
- 程序安装C盘(windows默认系统盘符),修改自身携带的配置文件,可能会失败(实战中没有成功过),因为, 程序缺少管理员权限读写配置文件。
3. 如何解决?
- 使用VS (中文版)打开项目属性 > 配置属性 > 链接器 > 清单文件 > UAC执行级别, 将其设置为
requireAdministrator (/level='requireAdministrator')
看图,胜千言
- 修改后,重新编译即可解决
5 cmake 为项目增加管理员全权限
- 既然咱们是cmake管理项目,设置方法如下
5.1 cmake脚本
# 如果是windows,设置管理员权限。注意使用if需要配合endif使用
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/level='requireAdministrator' " )
endif()
请将${PROJECT_NAME} 替换为你自己的项目名称, 我这里是基于前文中的演示项目
修改脚本后,需要重新构建cmake脚本可生效
5.2 设置结果
- 使用VS2019(中文版)打开,查看项目属性
- 可见已经设置为管理员选项了
6 拓展
- 如果项目也需要设置UAC绕过UI保护呢**
- cmake脚本如下
# 如果是windows,设置管理员权限。注意使用if需要配合endif使用
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/level='requireAdministrator' /uiAccess='true'" )
endif()
生成后,请自行查验
- 结果