我使用 NSIS 编写了一个安装程序,我需要它在标准位置(如 C:/Program Files/App Name/)安装一些文件(DLL 等)。我还需要在当前用户的 Application Data 目录中安装文件。问题是,当用户不是 Vista 上的管理员时,我需要提升权限,这样做时环境变量会发生变化,因此当前用户现在似乎是管理员用户,我最终安装在管理员用户的目录中,而不是实际用户。您必须在启动安装程序时提升,所以我无法获取用户名然后提升。当我以管理员身份运行安装程序时,是否有一些合理的方法可以确定实际用户是谁?
编辑:不幸的是,在第一次运行时复制数据不是一种选择。如果没有我写入用户目录的内容,该应用程序将无法运行,因为它是一个 MS Word 模板。如果没有模板,我的东西将无法运行,因此我必须在安装时编写模板,并且 Word 要求模板位于用户的 AppData 目录中。