c#通过app.manifest使程序以管理员身份运行

时间:2013-06-27 22:47来源:网络收集+本站整理 作者:jtydl 点击: 1175 次
微软在Windows Vista开始引入了UAC(用户帐户控制)新技术(点击这儿了解什么是UAC)。当程序执行时需要权限的话,UAC会弹出警告消息:让用户确认是否同意允许这个程序改变你的计算机配置,windows需要得到你的许可才可以让程序继续执行下去。 通常我们使用c

微软在Windows Vista开始引入了UAC(用户帐户控制)新技术(点击这儿了解什么是UAC)。当程序执行时需要权限的话,UAC会弹出警告消息:让用户确认是否同意允许这个程序改变你的计算机配置,windows需要得到你的许可才可以让程序继续执行下去。

通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执行程序。

方法如下:

打开vs2005、vs2008等工程,在【解决方案资源管理器】里查看是否有app.manifest这个文件,如果没有的话,通过以下方法创建:

方法1:

1、在【解决方案资源管理器】右键工程名称选择属性;
2、在弹出的该对话框中,选择【安全性】选项卡。
3、勾选【启用ClickOnce安全设置】,并选中【这是完全可信的应用程序】。
4、保存工程,这时候app.manifest就自动创建了。

打开app.manifest把默认的配置修改一下,通过代码的注释,可以知道需要修改的节点是【requestedExecutionLevel】

asInvoker : 如果选这个,应用程序就是以当前的权限运行。

highestAvailable: 这个是以当前用户可以获得的最高权限运行。

requireAdministrator: 这个是仅以系统管理员权限运行。

找到<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
把其改为<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这时候修改完成,按下F5进行调试,通常会收到如下的错误提示:【ClickOnce 不支持请求执行级别“requireAdministrator”】。

事情好像发生了相互矛盾,上面开启【ClickOnce】便自动创建了app.manifest,现在修改了app.manifest却提示:ClickOnce 不支持请求执行级别“requireAdministrator”。

解决方法是:只要把【启用ClickOnce安全设置】不勾选就可以了。

如果操作步骤正确,按下F5进行调试,会弹出如下的提示框,VS具有提升的权限。

这样我们编写的应用程序在运行后,就会首先弹出这样一个提示框 , 点【Yes】后,程序才可以继续运行,并且获得系统管理员的权限。

方法2:

为工程项目添加一个类,应用程序清单文件(app.manifest)。

然后可以看到app.manifest的位置不在Properties属性里了,变成在引用里了,其节点内容也少了一些。

剩下的方法和上面相同。这样跳过了【启用ClickOnce安全设置】这步,直接执行,不会出错了。

转自:http://www.wodernet.com/4/405/20130609/686.html

c#通过app.manifest使程序 右键 以管理员身份运行相关推荐

  1. C# 让程序自动以管理员身份运行

    VISTA Windows 7 都使用了UAC来控制程序访问,对于一些需要使用管理员身份运行的程序就得右键以管理员身份运行. C# 编程中可以使程序自动使用管理员身份运行,也就是我们常常看到一些程序的 ...

  2. 设置/取消 应用程序始终以管理员身份运行

    设置应用程序始终以管理员身份运行 1.通过计算机管理永久开启Administrator管理员账号登录 右键桌面的"计算机" - 选择"管理"; 依次展开&quo ...

  3. 如何判断 .NET Core 应用程序是以管理员身份运行

    有时候,我们需要知道当前程序是否以管理员身份运行,以便执行一些需要特殊权限的操作. 在github(https://github.com/dotnet/runtime/issues/25118#iss ...

  4. 双击软件运行(或者右键以管理员身份运行)出现错误:无法成功完成操作,因为文件包含病毒或潜在垃圾软件

    在win10上面,双击软件运行(或者右键以管理员身份运行)出现错误:无法成功完成操作,因为文件包含病毒或潜在垃圾软件. 下载一个软件,结果报病毒了!本人尝试了很久,网上大多都是第一种方案,但我是第二种 ...

  5. 修改注册表实现在文件夹中右键以管理员身份运行CMD

    新建一个txt文档,将以下内容复制进去,然后将文档后缀名改为.reg,双击运行.reg文件. (也可以直接下载我写好的文件) Windows Registry Editor Version 5.00 ...

  6. c#通过app.manifest使程序以管理员身份运行

    通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行.微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以 ...

  7. VS 如何设置编译后的程序可以以管理员身份运行

    1.首先,创建一个文件命名为 XXX.exe.manifest, 并将以下内容复制到文件 <?xml version="1.0" encoding="UTF-8&q ...

  8. [Winform]默认以管理员身份运行程序

    摘要 在使用setupfactory打包之后,想让程序默认以管理员身份运行,因为涉及到创建文件删除文件的操作,如果权限比较低的话,会出现没有权限操作的bug. 解决办法 在项目中找到app.manif ...

  9. Win10在右键菜单中添加管理员身份运行命令的方法

    知识不用就会忘记,尤其是win10,没怎么玩过都快忘记了.尤其是win10右键菜单中没有以管理员身份运行命令提示符这一选项,怎么解决? 之所以会想起这个,是因为要安装录屏软件camtasia8系列,需 ...

最新文章

  1. mongoDB学习笔记(一)
  2. Qt Dll总结——链接库预备知识(转载)
  3. [转]window.open居中
  4. python 函数的调用的时候参数的传递_python定义函数时的参数调用函数时的传参...
  5. python 数据结构包_Python Redistr包_程序模块 - PyPI - Python中文网
  6. matlab列优先与高维矩阵重构 及 CNN 逐层可视化 on Matlab
  7. x1c 2017 安装mint18的坑——grub2
  8. 带货造假,买完不能换货?李佳琦、汪涵、李雪琴直播被中消协点名后这样回应...
  9. IE6下兼容CSS属性min-height的解决办法
  10. 程序调试经验~认证基盘测试程序初期调试~。
  11. 微型计算机在机械设计中的应用,浅谈计算机技术在机械设计制造及自动化中的应用.docx...
  12. android 微信小程序原理,Android开发微信小程序页面的图文教程
  13. 在网页中内嵌直接可以播放RTMP流的视频播放器
  14. 台式计算机进入安全模式蓝屏,电脑进安全模式蓝屏怎么办
  15. Pano2VR热点热区热点替换
  16. 什么是第三方支付呢?一文带你入行!
  17. Revisiting Self-Training for Few-Shot Learning of Language Model
  18. BZOJ 1122 [POI2008]账本BBB 神题
  19. 《Kotin 极简教程》第13章 使用 Kotlin 和 Anko 的Android 开发
  20. 【CKA考试笔记】十三、k8s中的网络

热门文章

  1. ubuntu 15.04 下的 nvidia(待续)
  2. JavaScript字符串、数组、对象方法总结
  3. bzoj4919 大根堆
  4. Centos6.5静态IP设置
  5. swap(a,b)值交换的4种方法
  6. WinCC归档数据报表控件
  7. python(5)- 基础数据类型
  8. 20145309信息安全系统设计基础第12周学习总结后篇
  9. Byte和byte[]数组
  10. 调研Android的开发环境的发展演变