从非特权标准用户帐户自动更新Windows C ++应用程序

问题描述

我有一个C ++主应用程序,该应用程序将安装在Program Files文件夹中,并且受UAC的控制,即非特权用户无法在主应用程序文件夹中写入或更改数据。

我还有一个自动更新的C ++应用程序,它将用于在没有标准用户干预的情况下自动更新主应用程序。

由于标准用户是应用程序的常规用户,并且系统远离管理员的物理访问权限,所以我想知道如何通过登录系统的标准用户自动更新应用程序。

我知道的一种方法是从Admin帐户创建和安装服务,该服务可以从标准用户帐户更新应用程序。

如果我不想使用创建服务作为自动更新应用程序的选项,还有其他方法/工具可以帮助我吗?

解决方法

如果这是您的应用程序,并且正在生产安装程序,则可以实施所谓的“用户安装”,即应用程序不是安装到C:\Program Files,而是安装到C:\Users\<user folder>\AppData\Local\<Application Folder>。缺点:该应用程序可用于该特定用户,另一个用户应为其自己安装应用程序,但无需管理员权限就可以对其进行更新。如果您的应用程序安装在“程序文件”以外的其他位置,则可能还需要检查应用程序是否可以运行。就是这样。