我使用NSIS编写了一个安装程序,需要将一些文件(DLL等)安装到标准位置,例如C:/Program Files/App Name/。我还需要将文件安装到当前用户的应用程序数据目录中。问题是,当用户在Vista上不是管理员时,我需要提升权限,这样环境变量会改变,因此当前用户现在似乎是管理员用户,我最终会安装在管理员用户的目录而不是实际用户的目录中。由于必须在启动安装程序时提升权限,因此无法获取用户名并提升权限。在以管理员身份运行安装程序时,是否有合理的方法来确定实际用户是谁?
编辑: 不幸的是,在第一次运行时复制数据不是一个选项。如果我不将我要写入用户目录的东西(MS Word模板)写入其中,我的应用程序将无法正常工作。我的东西没有模板就无法运行,因此我必须在安装时写入模板,而Word要求模板位于用户的AppData目录中。
编辑: 不幸的是,在第一次运行时复制数据不是一个选项。如果我不将我要写入用户目录的东西(MS Word模板)写入其中,我的应用程序将无法正常工作。我的东西没有模板就无法运行,因此我必须在安装时写入模板,而Word要求模板位于用户的AppData目录中。