Inno Setup:以管理员身份运行安装程序时如何获取当前用户目录?
我需要将 ini 文件写入 Windows 7 中当前用户的目录(C:\Users\CurUser)。 CurUser 不是管理员。我的安装程序需要管理员权限。所以我的设置如下所示:
[Setup]
PrivilegesRequired=admin
当我运行安装程序时,它会提示管理员登录。从那时起,所有用户常量、userappdata 等都位于 C:\Users\AdminUser...所以我需要一种方法在以 AdminUser 身份运行安装时找到 CurUser。
代码示例值得赞赏。谢谢。
I need to write a ini file to the current user's directory in Windows 7 (C:\Users\CurUser). CurUser is not an admin. My installer requires admin privileges. So my setup looks like this:
[Setup]
PrivilegesRequired=admin
When I run the installer it prompts for the admin to login. From that point on, all the user constants, userappdata, etc, are C:\Users\AdminUser... So I need a way to find the CurUser when running the install as AdminUser.
Code examples are appreciated. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果发现应用程序所需的所有用户特定文件/设置不存在,则应由应用程序写入这些文件/设置。
如果它需要来自设置,您可以将其写入全局位置作为应用程序复制或使用的“默认”位置。
这也意味着您的应用程序将适用于系统上的所有用户,而不仅仅是运行设置的用户。
All user specific files/settings that the app requires should be written by the app if they are found not to exist.
If it needs to come from the setup, you can write it into a global location as a "default" for the app to copy or use.
This also means your app will work for ALL users on the system rather than just the user that ran the setup.
您应该将您的设置分为两部分。第一个非管理部分将 ini 文件写入当前用户目录,并调用需要管理权限的第二个设置部分。
You should split your setup into two parts. The first non-admin part writes the ini file to the current user directory and it calls the second setup part which requires admin priviliges.
就我而言,我只是切换到
{commonappdata}
而不是{appdata}
,因为我的数据对于所有用户都是相同的。In my case, I just switched to
{commonappdata}
instead of{appdata}
, as my data was the same for all users.