繁体   English   中英

以管理员身份运行:访问用户VirtualStore

[英]Running as administrator: access user VirtualStore

我的软件安装有问题/第一次在Vista / 7上相对于VirtualStore运行。

我的软件是用C#编写的。 安装程序:NSIS。

  1. 我的应用程序是使用NSIS安装的。 它以管理员身份运行
  2. 安装完成后,用户可以立即从安装程序启动软件。
  3. 这导致程序的第一次运行以admin身份执行。
  4. 在第一次运行期间,必须完成一个向导。 该向导将从计算机上已经存在的较旧版本的软件(C:\\ Program Files \\ OldProgram \\ Data)中导入数据。
  5. 但是,在7 / Vista上,此数据位于用户的VirtualStore中。 当我是管理员时,我不会“看到”此数据,也无法进行转换。

问题:

  1. 我可以知道哪个用户当前登录吗?
  2. 是否存在访问该用户虚拟商店的通用方法? 考虑到“ Program Files”文件夹的名称不同,某些国家/地区和我的应用程序以“ 64位”位于“ Program Files(x86)”中。
  1. UserInfo :: GetName将为您提供用户名,如果需要更多控制,请使用UserMgr
  2. Windows并没有真正提供一种无需其他用户即可访问其他用户特殊文件夹的方式,但是该助手宏在大多数情况下都有效。 虚拟商店的名称/位置未记录在AFAIK中,因此您必须使用GetUserShellFolderFromRegistry获取最近的特殊文件夹,然后对路径的VirtualStore部分进行硬编码...

如果要以用户身份启动程序而不是由管理员执行安装,请使用UAC插件 (或仅删除完成页面上的run复选框,然后让用户正常启动程序)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM