可能是重复问题:
C# - 如何在Windows Vista 64位上获取Program Files(x86)
我正在试图从我的程序中启动第三方程序。 我已经在Program Files
和Program Files(x86)
中进行了快速搜索,我才意识到getenv(“ProgramFiles”)
返回的路径实际上取决于我是在x64还是Win32中运行。
如何使用环境变量而不是硬编码的名称搜索(无论是在C ++和C#或VB.NET中同时进行搜索),以便在用户机器上运行我的程序的版本不同的情况下,用户可能已经安装了另一个版本?
我的代码现在:在C ++中:
fs::path root_directory = fs::path(getenv("ProgramFiles"));
// and then I change to
root_directory = fs::path(getenv("ProgramFiles(x86)"));
在VB.NET中:
System.Environment.GetEnvironmentVariable("ProgramFiles")
我看了这个资源:http://msdn.microsoft.com/zh-cn/library/aa365743
但是如果我按照他们说的实现,我一直得到的是x86...