我的安装程序在所有用户中运行,并将用户信息保存在AppData文件夹中。
问题是,当安装完成后,可执行文件通过Exec
启动,并以管理员用户身份启动,因此所有会话数据都存储在管理员的AppData中。我想以管理员身份运行安装,但是作为当前用户运行最后一步。
RequestExecutionLevel admin
我可以以当前用户身份启动我的应用程序吗?在询问管理员权限之前,我可以保留当前用户吗?
微软的指导方针说:
Certification requirements for Windows Desktop Apps
- 默认情况下,应用必须安装到正确的文件夹 10.6您的应用必须在首次运行时写入用户数据,而不是在每台机器安装中安装期间。安装应用程序时,没有正确的用户位置来存储数据。
如果你有某种默认的用户数据/模板,你应该在%ProgramFiles%
或%ProgramData%
中安装它,你的应用程序应该在用户第一次运行你的应用程序时将这些数据复制到%AppData%
。
ShellExecAsUser和StdUtils插件可用于在完成页面上以“真实”用户身份执行您的应用程序。
UAC plug-in允许您访问“真正的”用户%AppData%
和注册表,但我不建议这种方法,因为插件很难使用,它真的促进不正确的行为。您很可能最终得到的安装模式仅适用于初始用户,而不适用于同一台计算机上的其他用户。