在x64位窗口上的ExpandEnvironmentStrings(…)正在将%programfiles%扩展到x86path

我有一个x86应用程序运行在x64版本的Windows 10上。

在我的应用程序中,我使用ExpandEnvironmentStrings(…)来扩展给定值的用户。

但是,当variables是%programfiles%它扩展到C:\ Program Files文件(x86)

我是否需要做一些特殊的事情来让x86应用程序正确地扩展程序文件variables?

注意 :当我在浏览器中直接使用%programfiles%时 ,它正确地扩展到C:\ Program Files

我正在开发Visual Studio 2015。

当32位应用程序展开%PROGRAMFILES%环境变量时,它总是返回32位应用程序所在的路径。 当从64位进程(如Explorer)扩展时,它将扩展到安装了64位应用程序的路径。

如果您需要从32位进程获取64位应用程序的路径,请改用%ProgramW6432%环境变量。

这是在WOW64实现细节下记录的 。 要自己检查,可以打开32位和64位命令提示符(键入%windir%\ SysWoW64 \ cmd.exe以在64位系统上打开32位命令提示符),然后键入set for一个环境变量列表。