很多时候,我们的程序因为需要管理员权限的问题而导致运行失败。这时候可以使用右键菜单,选中程序,以“管理员身份运行”,如下图所示。

虽然问题是可以解决,但是经常有时候客户不清楚如何操作,还是会带来麻烦。
所以更好的办法是程序直接主动申请权限,具体的做法是在项目中添加“应用程序清单文件”,默认会以 app.manifest 为文件名添加至项目根目录,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"><assemblyIdentity version="1.0.0.0" name="MyApplication.app"/><trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"><security><requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><!-- UAC 清单选项如果想要更改 Windows 用户帐户控制级别,请使用以下节点之一替换 requestedExecutionLevel 节点。n<requestedExecutionLevel  level="asInvoker" uiAccess="false" /><requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /><requestedExecutionLevel  level="highestAvailable" uiAccess="false" />指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此元素。--><requestedExecutionLevel level="asInvoker" uiAccess="false" /></requestedPrivileges></security></trustInfo><compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"><application><!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的Windows 版本的列表。取消评论适当的元素,Windows 将自动选择最兼容的环境。 --><!-- Windows Vista --><!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />--><!-- Windows 7 --><!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />--><!-- Windows 8 --><!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />--><!-- Windows 8.1 --><!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />--><!-- Windows 10 --><!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />--></application></compatibility><!-- 指示该应用程序可以感知 DPI 且 Windows 在 DPI 较高时将不会对其进行自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。--><!--<application xmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings><dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware></windowsSettings></application>--><!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) --><!--<dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="*"publicKeyToken="6595b64144ccf1df"language="*"/></dependentAssembly></dependency>--></assembly>

requestedExecutionLevel 的等级中,共有三项,分别是 asInvoker, highestAvailablerequireAdministrator。对应的权限,asInvoker 为一般程序(默认),highestAvailable 为当前用户的最高权限, requireAdministrator 为管理员权限。在设置为管理员权限后,每次程序启动时,如果没有相应权限,会主动弹出以下对话框要求权限。

补充,如果嫌弹出这个对话框麻烦,在用户许可的情况下,可以通过快捷方式进行设置管理员权限,如下所示。

除了权限问题,此文件中还包括兼容的操作系统信息,如果设置了此项,那么在不是对应的操作系统上运行时会有相应的提示(待续……)

C#项目中,使用应用程序清单文件 app.manifest 实现获得管理员权限等功能相关推荐

  1. 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序

    如果你的程序对 Windows 运行权限有要求,那么需要设置应用程序清单.本文介绍如何添加应用程序清单,并解释其中各项权限设置的实际效果. 本文内容 嵌入带默认设置的清单 新建一个自定义的清单文件 创 ...

  2. Vue第七章:项目环境配置及单文件组件 vue脚手

    第七章:项目环境配置及单文件组件 vue脚手架 回顾: 组件之间的通信 父传子:正向传递 vue允许 自动触发 ​ props ​ 1.先在子组件中定义期待的属性名和类型 ​ 2.在父组件中调用子组件 ...

  3. Vue项目中遇到了大文件分片上传的问题

    Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么 ...

  4. 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片...

    在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...

  5. VUE 项目中引入外部js文件(CND引入)

    以VUE项目中引入echarts文件为例: 第一步在VUE项目中找到index.html文件 引入 :<script src="https://cdnjs.cloudflare.com ...

  6. IDEA下,如何在java项目中新增jsp模板文件

    IDEA下,如何在java项目中新增jsp模板文件 大家会不会有这样的烦恼,就是当想要创建一个jsp模板文件的时候,右键new的时候找不到JSP选项. 这是因为在创建项目的时候没有选中Web Appl ...

  7. maven项目中,使用pom文件引入自定义jar包

    遇到需求要把自己的jar包引入到项目中,首先我的jar包是 sac-sys-service-1.0.jar 一.第一种,放到maven仓库 1. 找到整个项目的maven仓库,我的是默认路径: C盘 ...

  8. linux 获取文件父目录权限,Linux 文件权限中,操作一个文件需要父目录的那些权限?...

    eudore:linux 文件权限中,操作一个文件需要父目录的那些权限? 是否需要检查每级目录?想找到一份完整规范正确的指导,自己在写检查 linux 用户文件权限的代码. 例如读取一个文件 /hom ...

  9. u盘获取计算机管理员权限,复制文件到u盘需要管理员权限怎么办

    虽然u盘使用起来很方便,但有时候也是问题百出,比如在复制文件到u盘的时候,会突然弹出一个提示框,提示"您需要提供管理员权限才能复制到此文件夹",这又是什么鬼?遇到复制文件到u盘需要 ...

最新文章

  1. ARM启动代码中_main 与用户主程序main()的区别
  2. python是什么学了有什么用处_学python有什么用途 就业方向有哪些
  3. 计算机术语局部性,【计算机基础】程序的局部性简介
  4. java file 字符串_Java读取一个文本文件拼接成一个字符串(readFileToString)
  5. 完美!解决无法启动承载网络的问题
  6. Redis中的lru算法实现
  7. 51job导出的简历是php,前程无忧简历导出
  8. C#基础之vs2010安装与使用教程
  9. 淘宝APP用户行为数据分析 by 一只废鹅
  10. R语言Tukey检验进行事后检验(post hoc)实战:单因素方差分析告诉我们并不是所有的群体手段的效果是均等的,确切地找出哪些组彼此不同使用Tukey检验
  11. MOOC《程序设计入门——C语言》翁恺 第六周编程练习及答案
  12. java中加号_java中四则运算中的加号
  13. python学习No5
  14. codeforces 407C Curious Array
  15. Android 音视频采集与软编码总结
  16. 关于爱情和婚姻的经典故事
  17. 邱锡鹏 神经网络与深度学习课程【十六】——深度信念网络
  18. 大白话解读什么是七层网络协议,TCP/IP五层模型通信知识(一)
  19. 各种颜色:RGB值标准
  20. steam同乐无法连接远程计算机,Steam远程同乐功能怎么用 Steam远程同乐功能使用教程...

热门文章

  1. 黑苹果与白苹果、正式版和懒人版区别及
  2. 南方数码iData数据工厂二次开发实体
  3. background图片叠加_css怎么让两个背景图片重合显示?
  4. 基于大数据方法的经济研究:前沿进展与研究综述 | 特别推荐
  5. 蓝牙翻页笔(PPT 控制器)| ESP32轻松学(Arduino版)
  6. 2014年6月份第2周51Aspx源码发布详情
  7. [转载] 图像处理入门教程
  8. 嗅探的介绍极其原理、作用
  9. 2050让年青人因科技而团聚,你会来吗?
  10. 新版标准日本语中级_第十九课