有没有一种方法来安装以编程方式提示特权升级(UAC)的软件?

问题描述 投票:-1回答:3

基本上,我要么需要在程序中单击UAC按钮(我认为这是不可能的),要么以某种方式使它生效,所以我不需要单击按钮来安装软件。在程序安装过程中,我还需要单击按钮,但是我知道该怎么做。我只关心UAC的事情。

windows uac
3个回答
0
投票

您无法在UAC同意对话框上单击按钮。

您的其他选择取决于您真正想要实现的目标。因此,请为我们提供有关您的任务的更多详细信息:比从应用程序中单击安装程序按钮更好的设计选择。为避免使用UAC,您可以安装将开始安装的服务。但是在安装服务时,用户必须征得用户的同意。


4
投票

一种或另一种方式,用户必须单击该按钮才能授予您继续操作的权限。这就是UAC的全部重点,如果有一种解决方法,它绝对没有任何目的。

您可以早些时候(在安装开始时)或以后(在安装时实际需要该特权的时候)请求许可,但是您必须在其中一次进行许可。

标准做法是在您的应用程序中嵌入一个清单,该清单指示您需要管理特权。适用的行如下所示:

<requestedExecutionLevel level="requireAdministrator" />

或者,您可以选择依赖UAC's "Installer Detection" functionality

作为UAC的一部分的第一个应用程序兼容性技术称为安装程序检测。因为大多数安装程序将二进制文件写入Program Files目录,所以他们绝大多数需要管理员特权。安装程序检测旨在扫描EXE的名称和资源,以确定应用程序是否为安装程序。例如,如果可执行文件名称或描述包含字符串“ install”或“ setup”,则该可执行文件将被标记为安装程序。因此,如果由没有管理员权限的令牌启动,则名为setup.exe的应用程序(如果没有应用程序清单)将触发UAC提升。

单击按钮期间

,安装也不是一个好主意。如果这是您要编写的安装程序,则在执行安装程序应用程序时可以指定一些“静默安装”标志中的代码。如果您使用的是第三方安装程序,请查看文档;这样的标记很可能已经存在。这些标志的重点是在设置过程中根本不显示交互式UI,这意味着没有人需要打扰任何按钮(很难正确设置)。

3
投票

您可以将程序安装在用户的主目录或没有管理员权限的任何其他目录中。

© www.soinside.com 2019 - 2024. All rights reserved.