如何在Windows 7 x64上确定应用程序文件路径?

时间:2013-06-05 10:34:49

标签: c++ windows qt 64-bit

我正在尝试使用qApp->applicationDirPath()在Windows 7 x64上确定应用程序的目录路径。 在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上确定真实目录?

2 个答案:

答案 0 :(得分:1)

返回的路径实际上是硬盘上的真实路径。无论何时在Windows 7-64下向C:\安装内容,实际上都会将其发送到另一个文件夹,并且只能在C:下虚拟显示。 您可以使用Dos Box进行测试。

答案 1 :(得分:1)

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

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

引用Microsoft Knowledge base

  

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

假设在其中一台计算机上,安装人员拥有足够的权利,或者已禁用UAC。这就是为什么它在一个而不是另一个上工作的原因。