SHGetSpecialFolderPath,如何从32位应用程序访问64位CSIDL

时间:2009-08-20 10:38:26

标签: windows 64-bit win64 wow64

在64位系统上运行的32位应用程序是否可以访问64位应用程序的默认文件夹?

例如,使用来自32位应用程序的CSIDL_PROGRAM_FILES的SHGetSpecialFolderPath返回“C:\ Program Files(x86)”如果从64位应用程序使用相同的调用,我会得到“C:\ Program Files”。是否有从32位应用程序获取“C:\ Program Files”的方法?

此处的相关问题对SHGetFolderPath() 32 bit vs 64 bit没有帮助,也没有在调用SHGetSpecialFolderPath之前压制wow64文件系统重定向

2 个答案:

答案 0 :(得分:2)

回答我自己的问题,似乎用SHGetSpecialFolderPath是不可能的。在Vista及更高版本中,使用替换函数SHGetKnownFolderPath允许它与FOLDERID_ProgramFilesX64

答案 1 :(得分:1)

我认为拥有单独文件夹的全部原因是为了防止32位和64位应用程序混合。因此,您不需要查看属于与应用程序不同位的文件夹。

你可能有一个很好的理由,但我没有在你的问题中看到发布的那个。