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()

生成后,请自行查验

  • 结果
posted @ 2022-11-20 12:23  mohist  阅读(423)  评论(0编辑  收藏  举报