获取64位Program Files文件夹的路径

时间:2015-06-05 13:55:11

标签: vbscript environment-variables windows-7-x64

我使用的是Windows 7(x64),我需要指向64位Program Files文件夹的路径。

为此,我尝试使用ExpandEnvironmentStrings方法,但下面的两个示例都返回了32位Progrom Files文件夹(C:\Program Files (x86))的路径。

pfPath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES%")
pfPath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES(x86)%")

我也试过读取ProgramFilesDir的注册表值,但是这也返回了32位文件夹的路径,尽管密钥实际上包含了正确的路径(我已经检查了注册表)。

pfPath = Shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir") 

还有另一种方法可以做出正确的道路吗?

1 个答案:

答案 0 :(得分:3)

您的程序在WOW64上运行。当程序运行32位时,使用ProgramW6432环境变量获取真正的x64程序文件路径。

请注意,此环境变量仅在程序在WOW64下执行时才存在。如果您希望程序也在x86 Windows上运行,则需要使用普通的PROGRAMFILES环境变量。

所以,试试ProgramW6432,否则回到PROGRAMFILES。可能有一种更实用的方法来确定操作系统是否为x64,而且还可以使用VBScript。