2011-06-15 216 views
5

我需要在Windows 7(C:\ Users \ CurUser)中写入一个ini文件到当前用户的目录。 CurUser不是管理员。我的安装程序需要管理员权限。所以我的设置如下所示:Inno Setup:如何以admin身份运行安装程序时获取当前用户目录?

[Setup] 
PrivilegesRequired=admin 

当我运行安装程序时,它会提示管理员登录。从这一点开始,所有的用户常量,userappdata等都是C:\ Users \ AdminUser ...所以我需要一种方法来在AdminUser运行安装时找到CurUser。

代码示例表示赞赏。谢谢。

+0

不知道是否有可能,因为您现在正在管理员用户下运行setup.exe,并且我不认为它具有请求权限的用户的任何知识。 – 2011-06-15 13:47:45

+0

是否可以搜索我正在与Inno寻找的目录?我知道目录是* \ abc \ xyz \。 – PM2 2011-06-15 14:27:08

+0

您可以使用FindFirst,FindNext和FindClose例程查找目录。 – 2011-06-15 15:10:48

回答

3

你应该把你的设置分成两部分。第一个非管理部分将ini文件写入当前用户目录,并调用第二个需要管理员权限的设置部分。

2

应用程序需要的所有用户特定文件/设置应该由应用程序编写,如果发现它们不存在。 如果需要来自安装程序,可以将其写入全局位置作为应用程序要复制或使用的“默认”。

这也意味着您的应用程序将适用于系统上的所有用户,而不仅仅是运行安装程序的用户。

0

在我的情况下,我刚切换到{commonappdata}而不是{appdata},因为我的数据对所有用户都是一样的。

相关问题