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

微软在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安全设置】这步,直接执行,不会出错了。

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

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

    c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集+本站整理 作者:jtydl 点击: 1175 次 微软在Windows Vista开始引入 ...

  2. 如何强制.NET应用程序以管理员身份运行?

    将程序安装在客户端计算机上后,如何强制程序在Windows 7上以管理员身份运行? #1楼 在Visual Studio 2008上工作时,右键单击Project -> Add New Item ...

  3. c#中程序以管理员身份运行的三种办法

    三种办法: 一.设置程序本身的属性:勾选"以管理员身份运行此程序",必要时设置"更改所有用户设置-以管理员身份运行此程序",当然这种办法是被动的,也不是最实际的 ...

  4. 联想计算机管理员权限设置,管理员身份运行,详细教您如何设置以管理员身份运行程序...

    在使用电脑的过程中,难免会遇到一些权限问题,而一些软件则需要以管理员的身份才能运行,如果我们经常需要打开这个软件,每一次都需要右击选择"以管理员的身份运行"选项才能打开,比较麻烦. ...

  5. Win10以最高管理员身份运行程序的方法总结

    一.前言 Windows 中有些地方可能需要以管理员身份运行,而且频繁的模态确认框体验感非常差,还有提示音也不是特别友好.以最高管理员身份运行的方法通常有以下几种: 设置程序的兼容性以管理员身份运行: ...

  6. win7如何设置以管理员身份运行

    win7如何设置以管理员身份运行 对于win7新用户,可能很多朋友在运行软件或者安装的时候,会经常遇到以管理员身份运行的窗口,对于用户来说,真的会有些烦恼,这里为大家提供一些办法,希望对大家有所帮助. ...

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

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

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

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

  9. 如何自动以管理员身份运行.NET程序?

    windows 7和vista提高的系统的安全性,同时需要明确指定"以管理员身份运行"才可赋予被运行软件比较高级的权限,比如访问注册表等.否则,当以普通身份运行的程序需要访问较高级 ...

最新文章

  1. Cocos事件监听(JS)
  2. OpenSuse Linux 的单用户模式
  3. php封装pdo实例以及pdo长连接的优缺点
  4. UVA11174村民排队问题
  5. IDEA中添加tomcat服务器和创建一个新的web项目
  6. PHP_MySQL笔试题目一
  7. Replacing the ESXi Host Default Certificate with a CA-Signed Certificate
  8. JAVA中在某游戏系统有猫狗猪_算法面试题之猫狗队列(java)
  9. 循环斐波那契数列_第五课:斐波那契数列(第一课时)
  10. 使用详解_Log4j2使用详解
  11. 解释java程序所使用的命令是,Java程序的执行原理以及解释说明
  12. mac终端编写c语言,【新手提问】有知道用mac终端编c语言的网络编程的人吗?
  13. 换个思路理解Javascript中的this
  14. 30分钟用flex测试FDS
  15. Retinex算法Matlab代码——单尺度SSR
  16. ASUS华硕笔记本FN快捷键无法调节屏幕亮度
  17. 4GDTU称重系统无线监测系统
  18. 【JAVA】8.继承(图形面积问题)
  19. c语言程序 蟠桃记,蟠桃记
  20. kata-container安装步骤

热门文章

  1. 文本框点击后文字消失总结
  2. 项目不需要SVN控制的时候,该怎么办
  3. php冒泡排序和快速排序笔记
  4. MATLAB 与 Excel 接口
  5. scrapy框架之递归解析和post请求
  6. SQLServer数据库(二)
  7. Django基本命令
  8. SQL语句增加字段、修改字段、修改类型、修改默认值
  9. 新浪微博api(.net)时间格式问题
  10. 把ASP应用中的Session传递给asp.net应用