如何确定Windows 7 x64上的应用程序文件path?

我试图使用qApp->applicationDirPath()来确定我的应用程序在Windows 7 x64上的目录path。 在Windows 7 x 32和其他平台上(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上的实际目录?

返回的路径实际上是硬盘上的真实路径。 每当你在Windows 7-64下安装C:\时,这实际上被发送到一个不同的文件夹,并且只在C:下显示。 你可以用Dos Box来测试。

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

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

从Microsoft知识库引用:

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

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