有没有办法安装以编程方式提示权限提升(UAC)的软件?

时间:2012-01-26 17:17:09

标签: windows uac

基本上我需要用我的程序点击UAC按钮(我不相信是可能的)或以某种方式制作它所以我不需要单击按钮来安装软件。在使用我的程序安装过程中我还需要单击按钮,但我知道如何做到这一点。我只关心UAC的事情。

由于

3 个答案:

答案 0 :(得分:4)

无论如何,用户必须单击该按钮才能继续。这就是UAC的重点,如果有办法解决它,那绝对没有用。

您可以尽早(在安装开始时)或之后(在安装时首先要求获得特权)请求许可,但您必须在其中一个时间执行此操作。

标准操作方法是在您的应用程序中嵌入一个表明您需要管理权限的清单。适用的行如下所示:

<requestedExecutionLevel level="requireAdministrator" />

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

  

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

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

答案 1 :(得分:3)

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

如果您正在编写安装程序包装器,则可以在包装器上请求UAC,并且包装器可以使用管理员权限启动真正的安装程序。大多数安装程序还为无人参与安装提供命令行选项,因此您可能需要检查这些选项而不是脚本按钮单击。

答案 2 :(得分:0)

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

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