该程序在任何开始时都有一定的行为。有必要确保在重新安装或更新后启动程序时,此行为是不同的,与正常启动期间不同(如果在当前启动和更新/重新安装之间有更多启动)。在这种情况下,更新是在已安装程序的计算机上启动安装程序。
我决定在程序安装程序中添加一个空白文件,该文件将被解压缩到程序文件夹中。启动时,程序会检查此文件是否存在。如果是,则在更新/重新安装后执行必要的操作,然后删除空白文件。这样,下次程序启动时,就找不到这个文件了,在此基础上就知道已经启动了,照常行事。
但它不起作用 - 这完全与管理员权限有关。该程序由计算机管理员安装,普通用户使用它,因此安装的程序还没有管理员权限。事实证明,具有管理员权限的安装程序可以在包含该程序的文件夹中创建此文件。但是程序无法删除它,因为它安装在只有管理员可以访问的 Program Files 文件夹中。
为此,该程序可以使用给定用户的文件。看起来您可以通过安装程序在 Appdat'e 中创建此文件,然后使用程序将其删除。但是,安装程序无权访问用户文件夹,只能对管理员文件夹执行所有操作。
此外,不可能预先确定该程序将为哪个用户安装。这意味着无法为安装程序提供 Appdat 的绝对路径。
还有什么其他方法可以使程序在安装/更新后不执行与正常启动期间相同的操作。
该程序是用 Qt 编写的。使用的安装程序是 Inno Setup Compiller。操作系统视窗 10。
有几种方法可以解决您的问题,但只有您知道什么是最好的。
首先是 Inno Setup 有postinstall之类的东西- 安装成功后,您可以使用参数运行程序。
第二。有C:\ProgramData。是怎么写的
免费翻译
此外,没有人取消登记。
将文件添加到 AppData 的示例
您可以将文件添加到 Program Files,但重新制作应用程序,以便将其与 AppData 中的内容进行比较。