2

我正在尝试在 Windows 7 x64 上使用qApp->applicationDirPath(). 在 Windows 7 x32 和其他平台(XP 32、64)上它可以正常工作。但是当应用程序从“ C:\Program Files (x86)\MyApplication”运行时,会发生一些事情。它返回“ C:\Users\some_user\AppData\Local\VirtualStore\Program Files (x86)\MyApplication\”而不是“ C:\Program Files (x86)\MyApplication\”。它出什么问题了?

我尝试更改 UAC 设置,但没有成功。没有效果。或者,也许,我错了?

任何的想法?如何确定 Windows 7 x64 上的真实目录?

4

2 回答 2

1

返回的路径实际上是硬盘上的真实路径。每当您在 Windows 7-64 下将某些东西安装到 C:\ 时,这实际上会发送到不同的文件夹,并且仅在 C: 下虚拟显示。您可以使用 Dos Box 进行测试。

于 2013-06-05T10:40:45.280 回答
1

当您安装应用程序时,您的安装过程需要以管理权限运行或需要请求提升的权限,否则它将没有对 Program Files 目录的写入权限。

如果您没有足够的权限,您向 Program Files 目录写入任何内容的尝试将自动被虚拟化。

引用微软知识库

当此应用程序写入系统位置(例如 %programfiles% 文件夹)时,Windows Vista 和 Windows 7 会将写入操作和读取操作重定向到用户配置文件文件夹 (%localappdata%\VirtualStore) 中的用户特定位置。默认情况下,此位置为 C:\Users\User_name\AppData\Local\VirtualStore\Program Files\Application_name。

假设在其中一台计算机上进行安装的人拥有足够的权限,或者禁用了 UAC。这就是为什么它对一个起作用,而对另一个不起作用。

于 2013-06-05T14:48:32.447 回答