应用程序设置+ IniFile +用户权限

时间:2013-01-18 09:53:25

标签: delphi ini rights

你能告诉我吗?我写了一个使用'Settings.ini'来保存设置的应用程序。使用InnoSetup安装该应用程序。如果有多个用户帐户并且其中一个安装了应用程序,那么,如果我尝试从另一个帐户运行该应用程序,则会收到错误“无法写入...”。也就是说,如果从其他帐户运行,则应用程序无权写入设置文件。我不知道Windows XP中会发生什么,但这就是应用程序在Windows 7中的行为方式。 那么请你告诉我,有什么我应该在我的应用程序中定义它使它适用于多个用户,或者它应该在安装期间更改,在InnoSetup参数的某个地方? 谢谢。

1 个答案:

答案 0 :(得分:1)

您应该 - 将程序安装到Program Files或其他常用文件夹中 - 任何用户都有权读取和运行但不能写入或删除的文件夹。通常安装程序允许覆盖该文件夹,但规则仍然存在:每个用户都应具有非破坏性权限(读取和执行)而不具有破坏性(删除,覆盖)

这意味着您的安装程序应该请求管理员权限和UAC提升 - 请询问InnoSetup论坛或文档如何执行此操作。这可能涉及将清单资源包括在安装程序中。常规用户运行安装程序和安装程序然后请求具有管理员权限的另一个用户名和密码是正常的。


应将设置和其他用户唯一数据保存到特殊的每用户数据文件夹中。通常是用户配置文件下的AppLocal文件夹。但是,它是您的应用程序而不是安装程序的任务。安装程序可以创建全局设置模板,应用程序只会在给定用户下第一次运行时复制到用户本地设置,或者如果实现了级联设置存储,则会覆盖用户本地设置。

运行命令提示符,发出set命令 - 你会看到所有需要的路径作为具有AppPath,LocalAppPath和UserProfile等名称的环境变量