我使用的是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")
还有另一种方法可以做出正确的道路吗?
答案 0 :(得分:3)
您的程序在WOW64上运行。当程序运行32位时,使用ProgramW6432
环境变量获取真正的x64程序文件路径。
请注意,此环境变量仅在程序在WOW64下执行时才存在。如果您希望程序也在x86 Windows上运行,则需要使用普通的PROGRAMFILES
环境变量。
所以,试试ProgramW6432
,否则回到PROGRAMFILES
。可能有一种更实用的方法来确定操作系统是否为x64,而且还可以使用VBScript。