我正在使用 vb.net 开发一个应用程序。为了执行某些任务,应用程序需要机器中的管理员权限。程序执行过程中如何请求权限?
切换用户帐户以执行应用程序的一般方法是什么?换句话说,是否有某种方法可以让应用程序在任意用户帐户下运行?
我正在使用 vb.net 开发一个应用程序。为了执行某些任务,应用程序需要机器中的管理员权限。程序执行过程中如何请求权限?
切换用户帐户以执行应用程序的一般方法是什么?换句话说,是否有某种方法可以让应用程序在任意用户帐户下运行?
您可以编辑位于项目设置中的UAC 设置(在 VB 2008 中)。寻找写着的那一行
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
将 level="asInvoker" 更改为
level="asInvoker"
(与父进程相同的访问令牌)level="requireAdministrator
(需要完整的管理员)level="highestAvailable"
(当前用户可用的最高权限)Internet 上有几篇关于在 Vista 中开发提升进程的文章,但本质上提升请求涉及在应用程序清单文件中装饰 .NET 程序集和具有提升状态的 WIN32 可执行文件(可能是嵌入的或并排的)。
有一篇关于您的问题的优秀博客文章提供了您可能需要的代码:
我还没有这样做,但我相信你会转到(在 VS 2008 中)项目设置 -> 应用程序选项卡,然后单击“查看 UAC 设置”按钮。这将打开您的 app.manifest 文件。有一个标签,我认为它包含您正在寻找的选项。我的一些选项被注释掉了,这应该让你开始:
在 VS 2015 中:转到:项目 ->(项目名称)属性... -> 应用程序 -> 查看 Windows 设置并在 app.manifest 中找到(第 19 行):并将 asInvoker 更改为: