VS编写程序主动要求系统管理员权限(UAC控制)

程序在Vista及其以上版本中,不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作,例如本人之前编写的用友工具箱,如果操作系统没有关闭UAC帐户控制,直接运行工具箱,而不是右击“以管理员身份运行”,点击某些功能会有如下提示:

VS编写程序主动要求系统管理员权限(UAC控制) - 似水无痕 - 用友软件

如何让程序以管理员权限运行呢?

一种方法是不要直接双击程序,而是右击,选择“以管理员身份运行”

另外一种就是修改程序的manifset部分代码,让程序直接提示要求获取权限,下面来讲这个方法的操作过程。(以VS2015为例)

一、C#程序设置方法:

1.1、打开工程的属性对话框,找到“安全性”页签,然后将“启用ClickOnce安全设置”打勾。如下图,打勾前,右侧的Properties下面没有app. manifest,打勾后就有了。

VS编写程序主动要求系统管理员权限(UAC控制) - 似水无痕 - 用友软件

 

VS编写程序主动要求系统管理员权限(UAC控制) - 似水无痕 - 用友软件  

1.2、双击右侧的app. manifest,跳转到对应代码界面,找下以下代码:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

将其替换为如下代码:(也就是将上面的"asInvoker" 替换为 "requireAdministrator"

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

此时编译程序,会有错误提示:

ClickOnce 不支持请求执行级别requireAdministrator

1.3、再返回到1.1步骤中的对话款,将“启用ClickOnce安全设置”选项的对勾再去掉,编译程序即可。

 

二、VB.NET程序设置方法:

2.1、打开工程的属性对话框,找到“应用程序”页签,点击“查看Windows设置”按钮

VS编写程序主动要求系统管理员权限(UAC控制) - 似水无痕 - 用友软件

 2.2、程序自动跳转到app. manifest,找下以下代码:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

将其替换为如下代码:(也就是将上面的"asInvoker" 替换为 "requireAdministrator"

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

2.3、重新编译程序即可。


经过以上的代码修改后编辑的程序,如果系统没有关闭UAC控制,则在双击运行时,会给出如下提示:

我们点击“是”就相当于获取了权限,然后就可以正常操作了。

VS编写程序主动要求系统管理员权限(UAC控制) - 似水无痕 - 用友软件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值