Vbscript 获取64位程序文件文件夹的路径

Vbscript 获取64位程序文件文件夹的路径,vbscript,environment-variables,windows-7-x64,Vbscript,Environment Variables,Windows 7 X64,我使用的是Windows 7(x64),我需要64位程序文件文件夹的路径 为此,我尝试使用ExpandEnvironmentStrings方法,但下面的两个示例都返回32位Progrom文件文件夹的路径(C:\ProgramFiles(x86)) 我还尝试读取ProgramFilesDir的注册表值,但这也会返回32位文件夹的路径,尽管该键实际上包含正确的路径(我检查了注册表) 是否有其他方法可以找到正确的路径?您的程序正在WOW64上运行。当程序运行32位时,使用ProgramW6432环境变

我使用的是Windows 7(x64),我需要64位程序文件文件夹的路径

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

我还尝试读取
ProgramFilesDir
的注册表值,但这也会返回32位文件夹的路径,尽管该键实际上包含正确的路径(我检查了注册表)


是否有其他方法可以找到正确的路径?

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

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


因此,请尝试
ProgramW6432
,否则请返回到
PROGRAMFILES
。可能有一种更实用的方法来确定操作系统是否为x64,并且您也可以使用VBScript。

谢谢,这就是我所需要的:)听起来好像您出于某种原因正在运行32位脚本引擎。如果你能纠正这一点,你应该会得到你期望的结果。
pfPath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES%")
pfPath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES(x86)%")
pfPath = Shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir")