首页 > 编程学习 > 生成的exe程序默认以管理员权限启动

生成的exe程序默认以管理员权限启动

发布时间:2022/12/10 18:03:12

前言

我们知道,在有些时候,我们的程序是需要管理员权限的,没有管理员权限有些操作就无法执行。
有人说,直接右键,以管理员权限启动不就可以了!
这样确实可以解决,但是我们要站在普通用户的角度来看一些问题,如果一些操作失败,用户不知道是权限不足的原因呢?用户不会开启管理员权限呢?作为开发者,有些东西必须站在用户的角度来看。

软件: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具有提升的权限


本文链接:https://www.ngui.cc/el/2314986.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000