从32位Windows应用程序启动64位可执行文件

时间:2010-06-04 14:38:56

标签: windows 64-bit 32bit-64bit

32位应用程序在64位Windows上查找“Program Files”文件夹的“正确”方法是什么?例如,我正在运行带有VBScript引擎的32位应用程序,并且想要启动64位Excel(使用ShellExec或类似的)。在32位世界中,我会检查环境变量“ProgramFiles”以获取基本文件夹。我的理解是,作为64位Windows上的32位应用程序,该环境变量将指向32位程序文件文件夹 - 例如:C:\ Program Files(x86)。但我的64位Excel将在C:\ Program Files下。

我想避免硬编码对“c:\ program files”的引用。

2 个答案:

答案 0 :(得分:4)

您可以检查环境变量“ProgramW6432”。当在64位Windows上运行32位应用程序时,它应该存在并指向没有x86的Program Files。

文档:MSDN

答案 1 :(得分:3)

根据Windows的版本,您应该使用已知的文件夹apis。

http://msdn.microsoft.com/en-us/library/bb776911%28v=VS.85%29.aspx

具体而言,您可以将FOLDERID_ProgramFilesX64SHGetKnownFolderPath结合使用。