以管理员身份运行:访问用户VirtualStore
我的软件安装/首次在 Vista/7 上运行时遇到与 VirtualStore 相关的问题。
我的软件是用 C# 编写的。安装程序:NSIS。
- 我的应用程序是使用 NSIS 安装的。 以管理员身份运行
- 安装完成后,用户可以立即从安装程序启动软件。
- 这会导致程序的第一次运行以管理员身份执行。
- 在第一次运行期间,必须完成向导。此向导将从计算机上已有的旧版本软件导入数据 (C:\Program Files\OldProgram\Data)。
- 但是,在 7/Vista 上,此数据位于用户的 VirtualStore 中。当我是管理员时,我不会“看到”这些数据,也无法转换它。
问题:
- 我可以知道当前登录的是哪个用户吗?
- 是否有通用方法来访问该用户的虚拟商店? 考虑到“Program Files”文件夹的命名在某些国家/地区有所不同,并且在 64 位上,我的应用程序位于“Program Files (x86)”中。
I have an issue with my software installation / first time run on Vista / 7 in relation to the VirtualStore.
My software is written in C#. Installer: NSIS.
- My application is installed using NSIS. It runs as administrator
- After installation is finished, the user can immediately start the software from the installer.
- This results in the first run of the program to be executed as admin.
- During the first run, a wizard has to be completed. This wizard will import data from an older version of the software, that is already on the computer (C:\Program Files\OldProgram\Data)
- However, on 7/Vista, this data is in the VirtualStore of the user. When I'm admin, I don't "see" this data and I can't convert it.
Questions:
- Can I know which user is currently logged in?
- Is there a generic way to access the Virtual Store of this user? Taking into account that the "Program Files" folder is named different is some countries and on 64-bits my app sits in "Program Files (x86)".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您想以用户身份启动程序,而不是以管理员身份执行安装时,使用 UAC 插件(或者只需删除完成页面上的运行复选框,然后让用户正常启动程序)
If you want to launch a program as the user and not the administrator performing the install, use the UAC plugin (Or just remove the run checkbox on the finish page and let the user start the program normally)