前言
我们知道,在有些时候,我们的程序是需要管理员权限的,没有管理员权限有些操作就无法执行。
有人说,直接右键,以管理员权限启动不就可以了!
这样确实可以解决,但是我们要站在普通用户的角度来看一些问题,如果一些操作失败,用户不知道是权限不足的原因呢?用户不会开启管理员权限呢?作为开发者,有些东西必须站在用户的角度来看。
软件:VS2012
操作
首先得写好窗体式程序
扣代码…
扣代码…
扣代码…
重要的事情说三遍!!!
正常生成的exe文件
拥有管理员权限的exe文件
可以观察图标的右下角有没有管理员Logo
- 没有就代表没有管理员权限
- 有就代表应有最高管理员权限
生成
点击项目,点击属性
点击安全性,打开ClickOnce
然后关掉属性界面,查看解决方案多了一个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具有提升的权限