【问题标题】:Launching 64-bit executable from 32-bit Windows app从 32 位 Windows 应用程序启动 64 位可执行文件
【发布时间】:2011-02-27 20:11:39
【问题描述】:

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”的引用进行硬编码。

【问题讨论】:

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


    【解决方案1】:

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

    文档:MSDN

    【讨论】:

    • 完美!这正是我所需要的。谢谢!
    • 如果运行 64 位应用程序,ProgramW6432 会为空吗?
    • 在运行 64 位应用程序时很容易丢失。
    【解决方案2】:

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

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

    具体来说,您可以将FOLDERID_ProgramFilesX64SHGetKnownFolderPath 结合使用。

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 1970-01-01
      • 2012-01-19
      • 2013-03-11
      • 1970-01-01
      • 2022-11-12
      • 2011-06-23
      • 1970-01-01
      • 2011-01-27
      相关资源
      最近更新 更多